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