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 2015/05/24 19:01:47 UTC
[6/6] incubator-tinkerpop git commit: fixed bugs that were subsequent
errors from the work on Step.equals() and Step.hashCode()
fixed bugs that were subsequent errors from the work on Step.equals() and Step.hashCode()
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/73b4347c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/73b4347c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/73b4347c
Branch: refs/heads/master
Commit: 73b4347ccc5ed068aa06ed81113ffba45c849b6e
Parents: 67488a2
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Sun May 24 16:06:34 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Sun May 24 16:06:34 2015 +0200
----------------------------------------------------------------------
.../gremlin/process/traversal/Step.java | 11 +++++++++
.../gremlin/process/traversal/Traversal.java | 17 ++++---------
.../process/traversal/util/TraversalHelper.java | 25 ++++++++++++--------
.../tinkergraph/structure/TinkerGraphTest.java | 10 +++-----
4 files changed, 34 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/73b4347c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Step.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Step.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Step.java
index c86292f..65368dd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Step.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Step.java
@@ -154,4 +154,15 @@ public interface Step<S, E> extends Iterator<Traverser<E>>, Serializable, Clonea
public default Set<TraverserRequirement> getRequirements() {
return Collections.emptySet();
}
+
+ /**
+ * Compare the current step with another step.
+ *
+ * @param other the other step
+ * @param compareIds whether to compare step IDs or not
+ * @return true if the steps are equal, otherwise false
+ */
+ public default boolean equals(final Step other, final boolean compareIds) {
+ return (!compareIds || (other != null && this.getId().equals(other.getId()))) && this.equals(other);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/73b4347c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
index 88c36ee..315ca4f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
@@ -22,22 +22,15 @@ import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
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.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
+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.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@@ -266,7 +259,7 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable {
* @throws IllegalStateException if the {@link TraversalStrategies} have already been applied
*/
public default <S2, E2> Traversal.Admin<S2, E2> removeStep(final Step<?, ?> step) throws IllegalStateException {
- return this.removeStep(this.getSteps().indexOf(step));
+ return this.removeStep(TraversalHelper.stepIndex(step, this));
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/73b4347c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index cc056ce..4f94071 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -30,12 +30,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -95,20 +90,30 @@ public final class TraversalHelper {
}
}
+ public static <S, E> int stepIndex(final Step<S, E> step, final Traversal.Admin<?, ?> traversal) {
+ int i = 0;
+ for (final Step s : traversal.getSteps()) {
+ if (s.equals(step, true))
+ return i;
+ i++;
+ }
+ return -1;
+ }
+
public static <S, E> Step<?, E> insertTraversal(final Step<?, S> previousStep, final Traversal.Admin<S, E> insertTraversal, final Traversal.Admin<?, ?> traversal) {
- return TraversalHelper.insertTraversal(traversal.getSteps().indexOf(previousStep), insertTraversal, traversal);
+ return TraversalHelper.insertTraversal(stepIndex(previousStep, traversal), insertTraversal, traversal);
}
public static <S, E> void insertBeforeStep(final Step<S, E> insertStep, final Step<E, ?> afterStep, final Traversal.Admin<?, ?> traversal) {
- traversal.addStep(traversal.getSteps().indexOf(afterStep), insertStep);
+ traversal.addStep(stepIndex(afterStep, traversal), insertStep);
}
public static <S, E> void insertAfterStep(final Step<S, E> insertStep, final Step<?, S> beforeStep, final Traversal.Admin<?, ?> traversal) {
- traversal.addStep(traversal.getSteps().indexOf(beforeStep) + 1, insertStep);
+ traversal.addStep(stepIndex(beforeStep, traversal) + 1, insertStep);
}
public static <S, E> void replaceStep(final Step<S, E> removeStep, final Step<S, E> insertStep, final Traversal.Admin<?, ?> traversal) {
- traversal.addStep(traversal.getSteps().indexOf(removeStep), insertStep);
+ traversal.addStep(stepIndex(removeStep, traversal), insertStep);
traversal.removeStep(removeStep);
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/73b4347c/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 f178855..0f4c965 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
@@ -144,14 +144,10 @@ public class TinkerGraphTest {
public void testPlayDK() throws Exception {
final Graph graph = TinkerFactory.createModern();
final GraphTraversalSource g = graph.traversal();
- Traversal traversal = g.V().hasLabel("person").where(values("name").is(P.gte("m").and(P.lt("q")).or(P.eq("josh")))).valueMap();
+ Traversal traversal = g.V().both().both().count();
+ //traversal.forEachRemaining(System.out::println);
+ traversal.asAdmin().applyStrategies();
System.out.println(traversal.toString());
- traversal.forEachRemaining(System.out::println);
- System.out.println(traversal.toString());
- System.out.println();
- traversal = g.V().hasLabel("person").where(values("name").is(P.gte("m").and(P.lt("q")).or(P.eq("josh")).negate())).valueMap();
- System.out.println(traversal.toString());
- traversal.forEachRemaining(System.out::println);
System.out.println(traversal.toString());
}