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/05 16:23:58 UTC

incubator-tinkerpop git commit: fixed a bug in HasNextTraversal and its relation to ChooseStep. Also, fixed a similar bug in OrderGlobalStep.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/lifecylces cf79f6421 -> b24a99106


fixed a bug in HasNextTraversal and its relation to ChooseStep. Also, fixed a similar bug in OrderGlobalStep.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/b24a9910
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/b24a9910
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/b24a9910

Branch: refs/heads/lifecylces
Commit: b24a99106341ac79e83a2c27f8f9218573e365aa
Parents: cf79f64
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue May 5 08:23:38 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue May 5 08:23:38 2015 -0600

----------------------------------------------------------------------
 .../traversal/lambda/HasNextTraversal.java      |  9 +++----
 .../traversal/step/branch/BranchStep.java       |  2 +-
 .../traversal/step/map/OrderGlobalStep.java     | 25 ++++++++++++++++----
 .../step/util/TraversalComparator.java          |  4 ++++
 .../traversal/util/DefaultTraversal.java        |  5 ++--
 5 files changed, 34 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b24a9910/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/HasNextTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/HasNextTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/HasNextTraversal.java
index 7a02e53..b8a3b75 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/HasNextTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/HasNextTraversal.java
@@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 
 import java.util.List;
@@ -60,7 +61,7 @@ public final class HasNextTraversal<S> implements Traversal.Admin<S, Boolean> {
 
     @Override
     public String toString() {
-        return "(hasNext)";
+        return TraversalHelper.makeTraversalString(this);
     }
 
     @Override
@@ -70,7 +71,7 @@ public final class HasNextTraversal<S> implements Traversal.Admin<S, Boolean> {
 
     @Override
     public TraversalStrategies getStrategies() {
-        return null;
+        return this.hasNextTraversal.getStrategies();
     }
 
     @Override
@@ -110,7 +111,7 @@ public final class HasNextTraversal<S> implements Traversal.Admin<S, Boolean> {
 
     @Override
     public <S2, E2> Traversal.Admin<S2, E2> removeStep(int index) throws IllegalStateException {
-        return null;
+        return this.hasNextTraversal.removeStep(index);
     }
 
     @Override
@@ -141,7 +142,7 @@ public final class HasNextTraversal<S> implements Traversal.Admin<S, Boolean> {
 
     @Override
     public void setEngine(final TraversalEngine engine) {
-
+        this.hasNextTraversal.setEngine(engine);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b24a9910/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchStep.java
index f49103d..3b990ca 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchStep.java
@@ -64,7 +64,7 @@ public class BranchStep<S, E, M> extends ComputerAwareStep<S, E> implements Trav
     @Override
     public List<Traversal.Admin<S, E>> getGlobalChildren() {
         return Collections.unmodifiableList(this.traversalOptions.values().stream()
-                .flatMap(list -> list.stream())
+                .flatMap(List::stream)
                 .collect(Collectors.toList()));
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b24a9910/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
index 39d98ef..92e2993 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
@@ -21,16 +21,17 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.ComparatorHolder;
+import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.CollectingBarrierStep;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.TraversalComparator;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Order;
 import org.apache.tinkerpop.gremlin.util.function.ChainedComparator;
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -40,7 +41,7 @@ import java.util.stream.Collectors;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implements ComparatorHolder<S> {
+public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implements ComparatorHolder<S>, TraversalParent {
 
     private final List<Comparator<S>> comparators = new ArrayList<>();
 
@@ -55,12 +56,14 @@ public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implement
 
     @Override
     public void addComparator(final Comparator<S> comparator) {
+        if (comparator instanceof TraversalComparator)
+            this.integrateChild(((TraversalComparator) comparator).getTraversal());
         this.comparators.add(comparator);
     }
 
     @Override
     public List<Comparator<S>> getComparators() {
-        return this.comparators.isEmpty() ? Arrays.asList((Comparator) Order.incr) : this.comparators;
+        return this.comparators.isEmpty() ? Collections.singletonList((Comparator) Order.incr) : this.comparators;
     }
 
     @Override
@@ -73,6 +76,20 @@ public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implement
         return Collections.singleton(TraverserRequirement.OBJECT);
     }
 
+    @Override
+    public <S, E> List<Traversal.Admin<S, E>> getLocalChildren() {
+        return Collections.unmodifiableList(this.comparators.stream()
+                .filter(comparator -> comparator instanceof TraversalComparator)
+                .map(traversalComparator -> ((TraversalComparator<S, E>) traversalComparator).getTraversal())
+                .collect(Collectors.toList()));
+    }
+
+    @Override
+    public void addLocalChild(final Traversal.Admin<?, ?> localChildTraversal) {
+        throw new UnsupportedOperationException("Use OrderGlobalStep.addComparator(" + TraversalComparator.class.getSimpleName() + ") to add a local child traversal:" + this);
+    }
+
+
     /////
 
     private static class ComparatorTraverser<S> implements Comparator<Traverser<S>>, Serializable {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b24a9910/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
index 2fe164b..046dedf 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
@@ -53,5 +53,9 @@ public final class TraversalComparator<S, E> implements Comparator<S>, Serializa
         clone.traversal = this.traversal.clone();
         return clone;
     }
+
+    public Traversal.Admin<S,E> getTraversal() {
+         return this.traversal;
+    }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b24a9910/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index 17e779a..0d18e89 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -25,8 +25,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 
 import java.util.ArrayList;
@@ -58,8 +58,9 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     public DefaultTraversal(final Graph graph) {
         this.graph = graph;
+        // necessary for anonymous traversals without a source (rethink how this works in the future)
         this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(TraversalStrategies.GlobalCache.getGraphClass(this.graph)));
-        this.traversalEngine = StandardTraversalEngine.instance(); // TODO: remove and then clean up v.outE
+        this.traversalEngine = StandardTraversalEngine.instance();
     }
 
     @Override