You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/15 20:00:27 UTC
incubator-tinkerpop git commit: Compare.opposite() is now
Compare.negate() as that is a Java BiPredicate interface method. Likewise for
Contains.negate() and P.negate(). Finally,
Order.opposite() is now Order.reversed() as that is a Java Comparator intef
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 8437d16d8 -> 01f1fcec4
Compare.opposite() is now Compare.negate() as that is a Java BiPredicate interface method. Likewise for Contains.negate() and P.negate(). Finally, Order.opposite() is now Order.reversed() as that is a Java Comparator inteface method. BiPredicateTraversal can now be negated.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/01f1fcec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/01f1fcec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/01f1fcec
Branch: refs/heads/master
Commit: 01f1fcec4e63dc5ec097586467a91f837b26ae61
Parents: 8437d16
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri May 15 12:00:17 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri May 15 12:00:17 2015 -0600
----------------------------------------------------------------------
.../traversal/lambda/BiPredicateTraversal.java | 12 ++++++++++--
.../tinkerpop/gremlin/structure/Compare.java | 15 ++++++++-------
.../tinkerpop/gremlin/structure/Contains.java | 3 ++-
.../apache/tinkerpop/gremlin/structure/Order.java | 17 +++++++++--------
.../org/apache/tinkerpop/gremlin/structure/P.java | 16 +++++++++++++++-
5 files changed, 44 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/01f1fcec/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/BiPredicateTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/BiPredicateTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/BiPredicateTraversal.java
index ff3e6e6..abaf373 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/BiPredicateTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/BiPredicateTraversal.java
@@ -32,16 +32,19 @@ import java.util.function.BiPredicate;
public class BiPredicateTraversal<S, E> implements BiPredicate<S, E> {
private Traversal.Admin<S, E> traversal;
+ private final boolean negate;
- public BiPredicateTraversal(final Traversal.Admin<S, E> traversal) {
+ public BiPredicateTraversal(final Traversal.Admin<S, E> traversal, final boolean negate) {
this.traversal = traversal;
+ this.negate = negate;
}
@Override
public boolean test(final S start, final E end) {
if (null == start)
throw new IllegalArgumentException("The traversal must be provided a start: " + this.traversal);
- return null == end ? TraversalUtil.test(start, this.traversal) : TraversalUtil.test(start, this.traversal, end);
+ final boolean result = null == end ? TraversalUtil.test(start, this.traversal) : TraversalUtil.test(start, this.traversal, end);
+ return this.negate ? !result : result;
}
public Traversal.Admin<S, E> getTraversal() {
@@ -54,6 +57,11 @@ public class BiPredicateTraversal<S, E> implements BiPredicate<S, E> {
}
@Override
+ public BiPredicateTraversal<S, E> negate() {
+ return new BiPredicateTraversal<>(this.traversal.clone(), !this.negate);
+ }
+
+ @Override
public BiPredicateTraversal<S, E> clone() {
try {
final BiPredicateTraversal<S, E> clone = (BiPredicateTraversal<S, E>) super.clone();
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/01f1fcec/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Compare.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Compare.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Compare.java
index df9f612..93468c4 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Compare.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Compare.java
@@ -38,7 +38,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return neq;
}
}, neq {
@@ -48,7 +48,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return eq;
}
}, gt {
@@ -61,7 +61,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return lte;
}
}, gte {
@@ -71,7 +71,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return lt;
}
}, lt {
@@ -84,7 +84,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return gte;
}
}, lte {
@@ -94,7 +94,7 @@ public enum Compare implements BiPredicate<Object, Object> {
}
@Override
- public Compare opposite() {
+ public Compare negate() {
return gt;
}
};
@@ -108,5 +108,6 @@ public enum Compare implements BiPredicate<Object, Object> {
/**
* Produce the opposite representation of the current {@code Compare} enum.
*/
- public abstract Compare opposite();
+ @Override
+ public abstract Compare negate();
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/01f1fcec/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Contains.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Contains.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Contains.java
index a543c44..43c31ff 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Contains.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Contains.java
@@ -57,7 +57,8 @@ public enum Contains implements BiPredicate<Object, Collection> {
/**
* Produce the opposite representation of the current {@code Contains} enum.
*/
- public Contains opposite() {
+ @Override
+ public Contains negate() {
return this.equals(within) ? without : within;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/01f1fcec/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Order.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Order.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Order.java
index 5a3cc91..c2825e8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Order.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Order.java
@@ -34,7 +34,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return decr;
}
}, decr {
@@ -44,7 +44,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return incr;
}
}, keyIncr {
@@ -54,7 +54,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return keyDecr;
}
}, valueIncr {
@@ -64,7 +64,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return valueDecr;
}
}, keyDecr {
@@ -74,7 +74,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return keyIncr;
}
}, valueDecr {
@@ -84,7 +84,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return valueIncr;
}
}, shuffle {
@@ -94,7 +94,7 @@ public enum Order implements Comparator<Object> {
}
@Override
- public Order opposite() {
+ public Order reversed() {
return shuffle;
}
};
@@ -109,5 +109,6 @@ public enum Order implements Comparator<Object> {
/**
* Produce the opposite representation of the current {@code Order} enum.
*/
- public abstract Order opposite();
+ @Override
+ public abstract Order reversed();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/01f1fcec/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/P.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/P.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/P.java
index e3bf8c5..d5b54c8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/P.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/P.java
@@ -74,6 +74,11 @@ public class P<V> implements Predicate<V>, Serializable {
return this.biPredicate.toString() + "(" + this.value + ")";
}
+ @Override
+ public P<V> negate() {
+ return new P<>(this.biPredicate.negate(), this.value);
+ }
+
//////////////// statics
public static <V> P<V> eq(final V value) {
@@ -129,13 +134,22 @@ public class P<V> implements Predicate<V>, Serializable {
}
public static <S, E> P<S> traversal(final Traversal<S, E> traversal) {
- return new P(new BiPredicateTraversal<>(traversal.asAdmin()), null);
+ return new P(new BiPredicateTraversal<>(traversal.asAdmin(), false), null);
}
public static P test(final BiPredicate biPredicate, final Object value) {
return new P(biPredicate, value);
}
+ public static <V> P<V>[] not(final P<V> predicate, final P<V>... predicates) {
+ final P[] temp = new P[predicates.length + 1];
+ temp[0] = predicate.negate();
+ for (int i = 1; i < predicates.length; i++) {
+ temp[i] = predicates[i - 1].negate();
+ }
+ return temp;
+ }
+
public static Pair<P, P[]> splitForAPI(final P[] pArray) {
if (pArray.length == 0)
throw new IllegalArgumentException("The P[] is not splittable because its length is 0: " + pArray);