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/16 00:37:47 UTC

[1/2] incubator-tinkerpop git commit: better negating for ConjunctionP's

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 95bb996d8 -> 5609de750


better negating for ConjunctionP's


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

Branch: refs/heads/master
Commit: dda6e31b292602f4a5b7851943ee6e3803de110b
Parents: f14fd44
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Sat May 16 00:37:04 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Sat May 16 00:37:04 2015 +0200

----------------------------------------------------------------------
 .../tinkerpop/gremlin/structure/util/AndP.java       | 11 +++++++++++
 .../gremlin/structure/util/ConjunctionP.java         | 15 +++++++++++++++
 .../apache/tinkerpop/gremlin/structure/util/OrP.java |  8 ++++++++
 .../tinkergraph/structure/TinkerGraphTest.java       |  7 ++++++-
 4 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dda6e31b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/AndP.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/AndP.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/AndP.java
index 132e2d0..316a898 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/AndP.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/AndP.java
@@ -35,6 +35,10 @@ public final class AndP<V> extends ConjunctionP<V> {
         super(predicate, predicates);
     }
 
+    protected AndP(final ConjunctionP<V> other) {
+        super(other);
+    }
+
     @Override
     public boolean test(final V v) {
         for (final P<V> predicate : this.predicates) {
@@ -53,6 +57,13 @@ public final class AndP<V> extends ConjunctionP<V> {
     }
 
     @Override
+    public P<V> negate() {
+        super.negate();
+        final P[] arg2 = new P[this.predicates.size()-1];
+        return new OrP(this.predicates.get(0), this.predicates.subList(1, this.predicates.size()).toArray(arg2));
+    }
+
+    @Override
     public String toString() {
         return "and(" + this.predicates + ")";
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dda6e31b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ConjunctionP.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ConjunctionP.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ConjunctionP.java
index 0a10085..446f642 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ConjunctionP.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ConjunctionP.java
@@ -23,6 +23,7 @@ package org.apache.tinkerpop.gremlin.structure.util;
 
 import org.apache.tinkerpop.gremlin.structure.P;
 
+import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -44,6 +45,11 @@ public abstract class ConjunctionP<V> extends P<V> {
         }
     }
 
+    protected ConjunctionP(final ConjunctionP<V> other) {
+        super(null, null);
+        this.predicates = other.predicates;
+    }
+
     public List<P<V>> getPredicates() {
         return Collections.unmodifiableList(this.predicates);
     }
@@ -58,6 +64,15 @@ public abstract class ConjunctionP<V> extends P<V> {
         return this;
     }
 
+    protected P<V> negate(final ConjunctionP<V> p) {
+        final List<P<V>> negated = new ArrayList<>();
+        for (final P<V> predicate : this.predicates) {
+            negated.add(predicate.negate());
+        }
+        p.predicates = negated;
+        return p;
+    }
+
     @Override
     public ConjunctionP<V> clone() {
         final ConjunctionP<V> clone = (ConjunctionP<V>) super.clone();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dda6e31b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/OrP.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/OrP.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/OrP.java
index ad9c626..24f931f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/OrP.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/OrP.java
@@ -23,6 +23,7 @@ package org.apache.tinkerpop.gremlin.structure.util;
 
 import org.apache.tinkerpop.gremlin.structure.P;
 
+import java.util.List;
 import java.util.function.Predicate;
 
 /**
@@ -52,6 +53,13 @@ public final class OrP<V> extends ConjunctionP<V> {
     }
 
     @Override
+    public P<V> negate() {
+        super.negate();
+        final P[] arg2 = new P[this.predicates.size()-1];
+        return new AndP(this.predicates.get(0), this.predicates.subList(1, this.predicates.size()).toArray(arg2));
+    }
+
+    @Override
     public String toString() {
         return "or(" + this.predicates + ")";
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dda6e31b/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 c72ed92..c4b86f8 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
@@ -142,7 +142,12 @@ public class TinkerGraphTest {
     public void testPlayDK() throws Exception {
         final Graph graph = TinkerFactory.createModern();
         final GraphTraversalSource g = graph.traversal();
-        Traversal traversal = g.V().union(__.outE().inV(), __.inE().outV()).union(__.identity(), __.path());
+        Traversal traversal = g.V().hasLabel("person").where(values("name").is(P.gte("m").and(P.lt("q")).or(P.eq("josh")))).valueMap();
+        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());


[2/2] incubator-tinkerpop git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-tinkerpop

Posted by dk...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-tinkerpop


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

Branch: refs/heads/master
Commit: 5609de750c8fbda209e92bdc9ca75b046dc625cd
Parents: dda6e31 95bb996
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Sat May 16 00:37:32 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Sat May 16 00:37:32 2015 +0200

----------------------------------------------------------------------
 docs/src/the-traversal.asciidoc                                    | 2 +-
 .../gremlin/process/traversal/lambda/TraversalBiPredicate.java     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------