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 2016/09/07 08:32:27 UTC

tinkerpop git commit: Fixed `hasLabel`, `hasId`, `hasKey` and `hasValue`.

Repository: tinkerpop
Updated Branches:
  refs/heads/hasStepFix [created] 5c69b2ffd


Fixed `hasLabel`, `hasId`, `hasKey` and `hasValue`.

These steps a) were allowed to be called w/o arguments and b) were not able to handle `P`-predicates.


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

Branch: refs/heads/hasStepFix
Commit: 5c69b2ffdba35870145ceb8da9c45f9ee5faa9e1
Parents: e1543f1
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 10:28:52 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Sep 7 10:28:52 2016 +0200

----------------------------------------------------------------------
 .../traversal/dsl/graph/GraphTraversal.java     | 36 +++++++++-----------
 .../gremlin/process/traversal/dsl/graph/__.java | 24 ++++++-------
 2 files changed, 28 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c69b2ff/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 4c08068..e0956c5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -967,32 +967,28 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(new NotStep<>(this.asAdmin(), __.values(propertyKey)));
     }
 
-    public default GraphTraversal<S, E> hasLabel(final String... labels) {
-        this.asAdmin().getBytecode().addStep(Symbols.hasLabel, labels);
-        return 1 == labels.length ?
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.label.getAccessor(), P.eq(labels[0])))) :
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.label.getAccessor(), P.within(labels))));
+    public default GraphTraversal<S, E> has(final T accessor, final Object value, final Object... values) {
+        if (values.length == 0) return has(accessor, value);
+        final Object[] objects = new Object[values.length + 1];
+        objects[0] = value;
+        System.arraycopy(values, 0, objects, 1, values.length);
+        return has(accessor, P.within(objects));
     }
 
-    public default GraphTraversal<S, E> hasId(final Object... ids) {
-        this.asAdmin().getBytecode().addStep(Symbols.hasId, ids);
-        return 1 == ids.length ?
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.id.getAccessor(), P.eq(ids[0])))) :
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.id.getAccessor(), P.within(ids))));
+    public default GraphTraversal<S, E> hasLabel(final Object value, final Object... values) {
+        return has(T.label, value, values);
     }
 
-    public default GraphTraversal<S, E> hasKey(final String... keys) {
-        this.asAdmin().getBytecode().addStep(Symbols.hasKey, keys);
-        return 1 == keys.length ?
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.key.getAccessor(), P.eq(keys[0])))) :
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.key.getAccessor(), P.within(keys))));
+    public default GraphTraversal<S, E> hasId(final Object value, final Object... values) {
+        return has(T.id, value, values);
     }
 
-    public default GraphTraversal<S, E> hasValue(final Object... values) {
-        this.asAdmin().getBytecode().addStep(Symbols.hasValue, values);
-        return 1 == values.length ?
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.value.getAccessor(), P.eq(values[0])))) :
-                this.asAdmin().addStep(new HasStep(this.asAdmin(), HasContainer.makeHasContainers(T.value.getAccessor(), P.within(values))));
+    public default GraphTraversal<S, E> hasKey(final Object value, final Object... values) {
+        return has(T.key, value, values);
+    }
+
+    public default GraphTraversal<S, E> hasValue(final Object value, final Object... values) {
+        return has(T.value, value, values);
     }
 
     public default GraphTraversal<S, E> is(final P<E> predicate) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c69b2ff/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 6528eb3..9eac9ee 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -661,31 +661,31 @@ public class __ {
     }
 
     /**
-     * @see GraphTraversal#hasLabel(String...)
+     * @see GraphTraversal#hasLabel(Object, Object...)
      */
-    public static <A> GraphTraversal<A, A> hasLabel(final String... labels) {
-        return __.<A>start().hasLabel(labels);
+    public static <A> GraphTraversal<A, A> hasLabel(final Object value, Object... values) {
+        return __.<A>start().hasLabel(value, values);
     }
 
     /**
-     * @see GraphTraversal#hasId(Object...)
+     * @see GraphTraversal#hasId(Object, Object...)
      */
-    public static <A> GraphTraversal<A, A> hasId(final Object... ids) {
-        return __.<A>start().hasId(ids);
+    public static <A> GraphTraversal<A, A> hasId(final Object value, Object... values) {
+        return __.<A>start().hasId(value, values);
     }
 
     /**
-     * @see GraphTraversal#hasKey(String...)
+     * @see GraphTraversal#hasKey(Object, Object...)
      */
-    public static <A> GraphTraversal<A, A> hasKey(final String... keys) {
-        return __.<A>start().hasKey(keys);
+    public static <A> GraphTraversal<A, A> hasKey(final Object value, Object... values) {
+        return __.<A>start().hasKey(value, values);
     }
 
     /**
-     * @see GraphTraversal#hasValue(Object...)
+     * @see GraphTraversal#hasValue(Object, Object...)
      */
-    public static <A> GraphTraversal<A, A> hasValue(final Object... values) {
-        return __.<A>start().hasValue(values);
+    public static <A> GraphTraversal<A, A> hasValue(final Object value, Object... values) {
+        return __.<A>start().hasValue(value, values);
     }
 
     /**