You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2018/06/01 17:42:32 UTC
[26/28] tinkerpop git commit: wip
wip
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a8e2ea46
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a8e2ea46
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a8e2ea46
Branch: refs/heads/shortest-path-wip
Commit: a8e2ea464ba41fb66e4b8f82376032f4b12f74b0
Parents: a373c8b
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Fri Jun 1 09:22:10 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Fri Jun 1 10:41:20 2018 -0700
----------------------------------------------------------------------
.../search/path/ShortestPathVertexProgram.java | 36 +++++++++-----------
1 file changed, 17 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a8e2ea46/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
index 37d647e..6d46f88 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
@@ -47,6 +47,7 @@ import java.util.function.Function;
*/
public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Edge, Number>> {
+ @SuppressWarnings("WeakerAccess")
public static final String SHORTEST_PATHS = "gremlin.shortestPathVertexProgram.shortestPaths";
private static final String SOURCE_VERTEX_FILTER = "gremlin.shortestPathVertexProgram.sourceVertexFilter";
@@ -60,6 +61,10 @@ public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Ed
private static final String PATHS = "gremlin.shortestPathVertexProgram.paths";
private static final String VOTE_TO_HALT = "gremlin.shortestPathVertexProgram.voteToHalt";
+ private static final int SEARCH = 0;
+ private static final int COLLECT_PATHS = 1;
+ private static final int UPDATE_HALTED_TRAVERSERS = 2;
+
public static final PureTraversal<Vertex, ?> DEFAULT_VERTEX_FILTER_TRAVERSAL = new PureTraversal<>(new IdentityTraversal<>());
public static final PureTraversal<Vertex, Edge> DEFAULT_EDGE_TRAVERSAL = new PureTraversal<>(__.bothE().asAdmin());
public static final PureTraversal<Edge, Number> DEFAULT_DISTANCE_TRAVERSAL = new PureTraversal<>(new ConstantTraversal<>(1));
@@ -124,6 +129,11 @@ public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Ed
}
this.haltedTraversers = TraversalVertexProgram.loadHaltedTraversers(configuration);
+ this.haltedTraversersIndex = new IndexedTraverserSet<>(v -> v);
+ for (final Traverser.Admin<Vertex> traverser : this.haltedTraversers) {
+ this.haltedTraversersIndex.add(traverser.split());
+ }
+ this.haltedTraversers.clear();
this.memoryComputeKeys.add(MemoryComputeKey.of(SHORTEST_PATHS, Operator.addAll, true, !standalone));
}
@@ -198,21 +208,14 @@ public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Ed
@Override
public void setup(final Memory memory) {
-
- this.haltedTraversersIndex = new IndexedTraverserSet<>(v -> v);
- for (final Traverser.Admin<Vertex> traverser : this.haltedTraversers) {
- this.haltedTraversersIndex.add(traverser.split());
- }
- this.haltedTraversers.clear();
-
memory.set(VOTE_TO_HALT, true);
- memory.set(STATE, State.SEARCH);
+ memory.set(STATE, SEARCH);
}
@Override
public void execute(final Vertex vertex, final Messenger<Triplet<Path, Edge, Number>> messenger, final Memory memory) {
- switch (memory.<State>get(STATE)) {
+ switch (memory.<Integer>get(STATE)) {
case COLLECT_PATHS:
collectShortestPaths(vertex, memory);
@@ -298,15 +301,14 @@ public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Ed
}
final boolean voteToHalt = memory.get(VOTE_TO_HALT);
if (voteToHalt) {
- final State state = memory.get(STATE);
- if (state.equals(State.COLLECT_PATHS)) {
+ final int state = memory.get(STATE);
+ if (state == COLLECT_PATHS) {
if (this.standalone) return true;
- memory.set(STATE, State.UPDATE_HALTED_TRAVERSERS);
+ memory.set(STATE, UPDATE_HALTED_TRAVERSERS);
return false;
}
- if (state.equals(State.UPDATE_HALTED_TRAVERSERS)) return true;
- if (state.equals(State.COLLECT_PATHS)) memory.set(STATE, State.UPDATE_HALTED_TRAVERSERS);
- else memory.set(STATE, State.COLLECT_PATHS);
+ if (state == UPDATE_HALTED_TRAVERSERS) return true;
+ else memory.set(STATE, COLLECT_PATHS);
return false;
} else {
memory.set(VOTE_TO_HALT, true);
@@ -559,8 +561,4 @@ public class ShortestPathVertexProgram implements VertexProgram<Triplet<Path, Ed
}
};
}
-
- private enum State {
- SEARCH, COLLECT_PATHS, UPDATE_HALTED_TRAVERSERS
- }
}
\ No newline at end of file