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());
     }