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/06/20 23:20:07 UTC

incubator-tinkerpop git commit: Fixed `ConjunctionStrategy`. `and()` precedes `or()`, hence `OrStep` has to be processed prio `AndStep`. Confusing? Yeah, but it works.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 242a8234c -> e7e7424e3


Fixed `ConjunctionStrategy`. `and()` precedes `or()`, hence `OrStep` has to be processed prio `AndStep`. Confusing? Yeah, but it works.


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

Branch: refs/heads/master
Commit: e7e7424e334bbc31a6839c699fedc9831819f890
Parents: 242a823
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Sat Jun 20 23:18:07 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Sat Jun 20 23:18:07 2015 +0200

----------------------------------------------------------------------
 .../strategy/decoration/ConjunctionStrategy.java       |  5 +++--
 .../strategy/decoration/ConjunctionStrategyTest.java   | 13 +++++--------
 2 files changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e7e7424e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategy.java
index a38b129..a894c71 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategy.java
@@ -38,9 +38,10 @@ import java.util.Set;
  * <p/>
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
+ * @author Daniel Kuppitz (http://gremlin.guru)
  * @example <pre>
  * __.has("name","stephen").or().where(__.out("knows").has("name","stephen"))   // is replaced by __.or(__.has("name","stephen"), __.where(__.out("knows").has("name","stephen")))
- * __.out("a").out("b").and().out("c").or().out("d")                            // __.and(__.out("a").out("b"), __.or(__.out("c"), __.out("d")))
+ * __.out("a").out("b").and().out("c").or().out("d")                            // is replaced by __.or(__.and(__.out("a").out("b"), __.out("c")), __.out("d"))
  * __.as("a").out().as("b").and().as("c").in().as("d")                          // is replaced by __.and(__.as("a").out().as("b"), __.as("c").in().as("d"))
  * </pre>
  */
@@ -56,8 +57,8 @@ public final class ConjunctionStrategy extends AbstractTraversalStrategy<Travers
         if (!TraversalHelper.hasStepOfAssignableClass(ConjunctionStep.class, traversal))
             return;
 
-        processConjunctionMarker(AndStep.class, traversal);
         processConjunctionMarker(OrStep.class, traversal);
+        processConjunctionMarker(AndStep.class, traversal);
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e7e7424e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
index 89902ff..6bfb28a 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
@@ -26,7 +26,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
-import org.apache.tinkerpop.gremlin.structure.T;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.runners.Enclosed;
@@ -35,8 +34,6 @@ import org.junit.runners.Parameterized;
 
 import java.util.Arrays;
 
-import static org.apache.tinkerpop.gremlin.process.traversal.P.eq;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -121,11 +118,11 @@ public class ConjunctionStrategyTest {
 
             return Arrays.asList(new Traversal[][]{
                     {__.has("name", "stephen").or().where(__.out("knows").has("name", "stephen")), __.or(__.has("name", "stephen"), __.where(__.out("knows").has("name", "stephen")))},
-                    {__.out("a").out("b").and().out("c").or().out("d"), __.and(__.out("a").out("b"), __.or(__.out("c"), __.out("d")))},
-                    {__.as("1").out("a").out("b").as("2").and().as("3").out("c").as("4").or().as("5").out("d").as("6"), __.and(__.as("1").out("a").out("b").as("2"), __.or(__.as("3").out("c").as("4"), __.as("5").out("d").as("6")))},
-                    {__.as("1").out("a").out("b").and().as("3").out("c").or().as("5").out("d"), __.and(__.as("1").out("a").out("b"), __.or(__.as("3").out("c"), __.as("5").out("d")))},
-                   // {__.as("1").out("a").out("b").or().as("3").out("c").and().as("5").out("d"), __.or(__.as("1").out("a").out("b"), __.and(__.as("3").out("c"), __.as("5").out("d")))},
-                    {__.as("a").out().as("b").and().as("c").in().as("d"), __.and(__.as("a").out().as("b"),__.as("c").in().as("d"))}
+                    {__.out("a").out("b").and().out("c").or().out("d"), __.or(__.and(__.out("a").out("b"), __.out("c")), __.out("d"))},
+                    {__.as("1").out("a").out("b").as("2").and().as("3").out("c").as("4").or().as("5").out("d").as("6"), __.or(__.and(__.as("1").out("a").out("b").as("2"), __.as("3").out("c").as("4")), __.as("5").out("d").as("6"))},
+                    {__.as("1").out("a").out("b").and().as("3").out("c").or().as("5").out("d"), __.or(__.and(__.as("1").out("a").out("b"), __.as("3").out("c")), __.as("5").out("d"))},
+                    {__.as("1").out("a").out("b").or().as("3").out("c").and().as("5").out("d"), __.or(__.as("1").out("a").out("b"), __.and(__.as("3").out("c"), __.as("5").out("d")))},
+                    {__.as("a").out().as("b").and().as("c").in().as("d"), __.and(__.as("a").out().as("b"), __.as("c").in().as("d"))}
             });
         }
     }