You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/03/11 19:26:50 UTC
[34/50] [abbrv] incubator-tinkerpop git commit: Builders for Context
and Engine is now solid.
Builders for Context and Engine is now solid.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/c25b5a5a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/c25b5a5a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/c25b5a5a
Branch: refs/heads/master
Commit: c25b5a5aa2bb5eb9107e799abbd37c7274b10439
Parents: 7db4bf8
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Mar 10 09:05:50 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Mar 10 09:05:50 2015 -0600
----------------------------------------------------------------------
.../gremlin/process/TraversalContext.java | 2 +-
.../gremlin/process/TraversalEngine.java | 4 +++
.../graph/traversal/GraphTraversalContext.java | 12 ++++----
.../engine/ComputerTraversalEngine.java | 29 ++++++++++++--------
.../engine/StandardTraversalEngine.java | 19 +++++++++++--
.../tinkerpop/gremlin/structure/Graph.java | 3 +-
.../step/branch/GroovyUnionTest.groovy | 3 +-
.../tinkergraph/structure/TinkerGraphTest.java | 2 +-
8 files changed, 48 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
index 6b11324..1514b3e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
@@ -27,7 +27,7 @@ public interface TraversalContext {
public interface Builder<C extends TraversalContext> {
- public Builder engine(final TraversalEngine engine);
+ public Builder engine(final TraversalEngine.Builder engine);
public Builder strategy(final TraversalStrategy strategy);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
index 6148aa4..98d17f0 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
@@ -40,4 +40,8 @@ public interface TraversalEngine extends Serializable {
public default boolean isComputer() {
return this.getType().equals(Type.COMPUTER);
}
+
+ public interface Builder extends Serializable {
+ public TraversalEngine create(final Graph graph);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
index ad03fc4..b4eca49 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
@@ -38,10 +38,10 @@ import java.util.List;
public class GraphTraversalContext implements TraversalContext {
private final Graph graph;
- private final TraversalEngine engine;
+ private final TraversalEngine.Builder engine;
private final TraversalStrategies strategies;
- public GraphTraversalContext(final Graph graph, final TraversalEngine engine, final TraversalStrategy... strategies) {
+ public GraphTraversalContext(final Graph graph, final TraversalEngine.Builder engine, final TraversalStrategy... strategies) {
this.graph = graph;
this.engine = engine;
this.strategies = TraversalStrategies.GlobalCache.getStrategies(this.graph.getClass()).addStrategies(strategies);
@@ -49,14 +49,14 @@ public class GraphTraversalContext implements TraversalContext {
public GraphTraversal<Vertex, Vertex> V(final Object... vertexIds) {
final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(this);
- traversal.setEngine(this.engine);
+ traversal.setEngine(this.engine.create(this.graph));
traversal.setStrategies(this.strategies);
return traversal.addStep(new GraphStep<>(traversal, this.graph, Vertex.class, vertexIds));
}
public GraphTraversal<Edge, Edge> E(final Object... edgesIds) {
final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(this);
- traversal.setEngine(this.engine);
+ traversal.setEngine(this.engine.create(this.graph));
traversal.setStrategies(this.strategies);
return traversal.addStep(new GraphStep<>(traversal, this.graph, Edge.class, edgesIds));
}
@@ -73,10 +73,10 @@ public class GraphTraversalContext implements TraversalContext {
public static class Builder implements TraversalContext.Builder<GraphTraversalContext> {
- private TraversalEngine engine = StandardTraversalEngine.instance();
+ private TraversalEngine.Builder engine = StandardTraversalEngine.builder();
private List<TraversalStrategy> strategies = new ArrayList<>();
- public Builder engine(final TraversalEngine engine) {
+ public Builder engine(final TraversalEngine.Builder engine) {
this.engine = engine;
return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
index 63edc24..966ba6a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
@@ -26,23 +26,23 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.EmptyStep;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import java.io.Serializable;
+
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public final class ComputerTraversalEngine implements TraversalEngine {
- private final transient Graph graph;
- private Class<? extends GraphComputer> graphComputerClass;
+ private final GraphComputer graphComputer;
- private ComputerTraversalEngine(final Graph graph, final Class<? extends GraphComputer> graphComputerClass) {
- this.graph = graph;
- this.graphComputerClass = graphComputerClass;
+ private ComputerTraversalEngine(final GraphComputer graphComputer) {
+ this.graphComputer = graphComputer;
}
@Override
public void processTraversal(final Traversal.Admin<?, ?> traversal) {
if (traversal.getParent() instanceof EmptyStep)
- traversal.addStep(new ComputerResultStep<>(traversal, this.graph.compute(this.graphComputerClass), true));
+ traversal.addStep(new ComputerResultStep<>(traversal, this.graphComputer, true));
}
@Override
@@ -55,23 +55,28 @@ public final class ComputerTraversalEngine implements TraversalEngine {
return StringFactory.traversalEngineString(this);
}
- public static class Builder {
+ public static Builder build() {
+ return new Builder();
+ }
+
+
+ public static class Builder implements TraversalEngine.Builder, Serializable {
private Class<? extends GraphComputer> graphComputerClass;
- private Graph graph;
+ private GraphComputer.Isolation isolation = GraphComputer.Isolation.BSP;
public Builder computer(final Class<? extends GraphComputer> graphComputerClass) {
this.graphComputerClass = graphComputerClass;
return this;
}
- public Builder graph(final Graph graph) {
- this.graph = graph;
+ public Builder isolation(final GraphComputer.Isolation isolation) {
+ this.isolation = isolation;
return this;
}
- public ComputerTraversalEngine create() {
- return new ComputerTraversalEngine(this.graph, this.graphComputerClass);
+ public ComputerTraversalEngine create(final Graph graph) {
+ return new ComputerTraversalEngine(graph.compute(this.graphComputerClass).isolation(this.isolation));
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
index 8be5fc4..ce0d97a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
@@ -20,6 +20,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.engine;
import org.apache.tinkerpop.gremlin.process.Traversal;
import org.apache.tinkerpop.gremlin.process.TraversalEngine;
+import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
/**
@@ -27,7 +28,7 @@ import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
*/
public final class StandardTraversalEngine implements TraversalEngine {
- private static final StandardTraversalEngine standard = new StandardTraversalEngine();
+ private static final StandardTraversalEngine INSTANCE = new StandardTraversalEngine();
private StandardTraversalEngine() {
@@ -43,12 +44,26 @@ public final class StandardTraversalEngine implements TraversalEngine {
return Type.STANDARD;
}
+ public static Builder builder() {
+ return Builder.INSTANCE;
+ }
+
public static StandardTraversalEngine instance() {
- return standard;
+ return INSTANCE;
}
@Override
public String toString() {
return StringFactory.traversalEngineString(this);
}
+
+ public static class Builder implements TraversalEngine.Builder {
+
+ private static final Builder INSTANCE = new Builder();
+
+ @Override
+ public TraversalEngine create(final Graph graph) {
+ return StandardTraversalEngine.INSTANCE;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
index 5ac6a27..a7e3d37 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
@@ -23,7 +23,6 @@ import org.apache.tinkerpop.gremlin.process.T;
import org.apache.tinkerpop.gremlin.process.TraversalContext;
import org.apache.tinkerpop.gremlin.process.TraversalEngine;
import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
-import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversalContext;
import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
import org.apache.tinkerpop.gremlin.structure.io.DefaultIo;
@@ -149,7 +148,7 @@ public interface Graph extends AutoCloseable {
}
public default GraphTraversalContext traversal() {
- return this.traversal(GraphTraversalContext.of().engine(StandardTraversalEngine.instance()));
+ return this.traversal(GraphTraversalContext.of().engine(StandardTraversalEngine.builder()));
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
index f129ad9..12d125d 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
@@ -23,7 +23,6 @@ import org.apache.tinkerpop.gremlin.process.Traversal
import org.apache.tinkerpop.gremlin.process.TraversalEngine
import org.apache.tinkerpop.gremlin.process.UseEngine
import org.apache.tinkerpop.gremlin.process.graph.traversal.__
-import org.apache.tinkerpop.gremlin.process.graph.traversal.step.branch.UnionTest
import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine
import org.apache.tinkerpop.gremlin.structure.Vertex
@@ -105,7 +104,7 @@ public abstract class GroovyUnionTest {
@Override
public Traversal<Vertex, Number> get_g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX(
final Object v1Id, final Object v2Id) {
- g.engine(StandardTraversalEngine.standard);
+ g.engine(StandardTraversalEngine.INSTANCE);
g.V(v1Id, v2Id).union(outE().count, inE().count, outE().weight.sum);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c25b5a5a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
index 1cc0a10..7e28640 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
@@ -146,7 +146,7 @@ public class TinkerGraphTest {
@Ignore
public void testPlay3() throws Exception {
Graph graph = TinkerFactory.createModern();
- GraphTraversalContext g = graph.traversal(GraphTraversalContext.of().engine(StandardTraversalEngine.instance()));
+ GraphTraversalContext g = graph.traversal(GraphTraversalContext.of().engine(StandardTraversalEngine.builder()));
g.V().out().out().values("name").forEachRemaining(System.out::println);
}