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