You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/23 01:46:11 UTC
incubator-tinkerpop git commit: greatly simplified
ConfigurationTraversal -- sweet.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 278ee6f6f -> ef2c71432
greatly simplified ConfigurationTraversal -- sweet.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/ef2c7143
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/ef2c7143
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/ef2c7143
Branch: refs/heads/master
Commit: ef2c7143215f289f1c45034e10441c8c7ec7887d
Parents: 278ee6f
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri May 22 17:46:24 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri May 22 17:46:24 2015 -0600
----------------------------------------------------------------------
.../peerpressure/PeerPressureVertexProgram.java | 5 ++--
.../ranking/pagerank/PageRankVertexProgram.java | 6 +++--
.../computer/util/ConfigurationTraversal.java | 24 ++++++--------------
3 files changed, 14 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ef2c7143/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
index 7e697a2..2b9b972 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
import org.apache.tinkerpop.gremlin.process.computer.Memory;
import org.apache.tinkerpop.gremlin.process.computer.MessageScope;
import org.apache.tinkerpop.gremlin.process.computer.Messenger;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalClassFunction;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalObjectFunction;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptFunction;
import org.apache.tinkerpop.gremlin.process.computer.util.AbstractVertexProgramBuilder;
@@ -225,8 +226,8 @@ public class PeerPressureVertexProgram extends StaticVertexProgram<Pair<Serializ
}
- public Builder traversal(final Class<Supplier<Traversal.Admin<Vertex, Edge>>> traversalClass) {
- ConfigurationTraversal.storeState(traversalClass, this.configuration, TRAVERSAL_SUPPLIER);
+ public Builder traversal(final Class<? extends Supplier<Traversal.Admin<?, ?>>> traversalClass) {
+ ConfigurationTraversal.storeState(new TraversalClassFunction(traversalClass), this.configuration, TRAVERSAL_SUPPLIER);
return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ef2c7143/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
index b91efa4..d469544 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.process.computer.Memory;
import org.apache.tinkerpop.gremlin.process.computer.MessageCombiner;
import org.apache.tinkerpop.gremlin.process.computer.MessageScope;
import org.apache.tinkerpop.gremlin.process.computer.Messenger;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalClassFunction;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalObjectFunction;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptFunction;
import org.apache.tinkerpop.gremlin.process.computer.util.AbstractVertexProgramBuilder;
@@ -44,6 +45,7 @@ import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
+import java.util.function.Supplier;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -188,8 +190,8 @@ public class PageRankVertexProgram extends StaticVertexProgram<Double> {
}
- public Builder traversal(final Class<Function<Graph, Traversal.Admin<Vertex, Edge>>> traversalClass) {
- ConfigurationTraversal.storeState(traversalClass, this.configuration, TRAVERSAL_SUPPLIER);
+ public Builder traversal(final Class<? extends Supplier<Traversal.Admin<?, ?>>> traversalClass) {
+ ConfigurationTraversal.storeState(new TraversalClassFunction(traversalClass), this.configuration, TRAVERSAL_SUPPLIER);
return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ef2c7143/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ConfigurationTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ConfigurationTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ConfigurationTraversal.java
index 9933ac9..eb8cc83 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ConfigurationTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ConfigurationTraversal.java
@@ -31,13 +31,12 @@ import java.util.function.Supplier;
*/
public final class ConfigurationTraversal<S, E> implements Supplier<Traversal.Admin<S, E>> {
- private Function<Graph, Traversal.Admin<S, E>> functionTraversal;
- private Object configTraversal;
+ private Function<Graph, Traversal.Admin<S, E>> traversalFunction;
private String configKey;
private Graph graph;
public Traversal.Admin<S, E> get() {
- return this.functionTraversal.apply(this.graph);
+ return this.traversalFunction.apply(this.graph);
}
private ConfigurationTraversal() {
@@ -46,16 +45,16 @@ public final class ConfigurationTraversal<S, E> implements Supplier<Traversal.Ad
public void storeState(final Configuration configuration) {
try {
- VertexProgramHelper.serialize(this.configTraversal, configuration, this.configKey); // the traversal can not be serialized (probably because of lambdas). As such, try direct reference.
+ VertexProgramHelper.serialize(this.traversalFunction, configuration, this.configKey); // the traversal can not be serialized (probably because of lambdas). As such, try direct reference.
} catch (final IllegalArgumentException e) {
- configuration.setProperty(this.configKey, this.configTraversal);
+ configuration.setProperty(this.configKey, this.traversalFunction);
}
}
- public static <S, E> ConfigurationTraversal<S, E> storeState(final Object traversalConfigObject, final Configuration configuration, final String configKey) {
+ public static <S, E> ConfigurationTraversal<S, E> storeState(final Function<Graph, Traversal.Admin<S, E>> traversalFunction, final Configuration configuration, final String configKey) {
final ConfigurationTraversal<S, E> configurationTraversal = new ConfigurationTraversal<>();
configurationTraversal.configKey = configKey;
- configurationTraversal.configTraversal = traversalConfigObject;
+ configurationTraversal.traversalFunction = traversalFunction;
configurationTraversal.storeState(configuration);
return configurationTraversal;
}
@@ -65,16 +64,7 @@ public final class ConfigurationTraversal<S, E> implements Supplier<Traversal.Ad
configurationTraversal.graph = graph;
configurationTraversal.configKey = configKey;
final Object configValue = configuration.getProperty(configKey);
- configurationTraversal.configTraversal = configValue instanceof String ? VertexProgramHelper.deserialize(configuration, configKey) : (Function<Graph, Traversal.Admin<S, E>>) configValue;
- if (configurationTraversal.configTraversal instanceof Class) {
- try {
- configurationTraversal.functionTraversal = ((Class<Function<Graph, Traversal.Admin<S, E>>>) configurationTraversal.configTraversal).newInstance();
- } catch (final Exception e) {
- throw new IllegalStateException(e.getMessage(), e);
- }
- } else {
- configurationTraversal.functionTraversal = (Function<Graph, Traversal.Admin<S, E>>) configurationTraversal.configTraversal;
- }
+ configurationTraversal.traversalFunction = configValue instanceof String ? VertexProgramHelper.deserialize(configuration, configKey) : (Function<Graph, Traversal.Admin<S, E>>) configValue;
return configurationTraversal;
}
}