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