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 22:36:40 UTC

[1/5] tinkerpop git commit: added missing method for anonymous traversals

Repository: tinkerpop
Updated Branches:
  refs/heads/master c82f66179 -> 08a780fd4


added missing method for anonymous traversals


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

Branch: refs/heads/master
Commit: 8c2cfb8601b6baa0cbb462a78f5bcd3950739fac
Parents: a522bd5
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 10:48:31 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Sep 8 00:35:31 2016 +0200

----------------------------------------------------------------------
 .../tinkerpop/gremlin/process/traversal/dsl/graph/__.java     | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c2cfb86/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 9eac9ee..1349633 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,6 +661,13 @@ public class __ {
     }
 
     /**
+     * @see GraphTraversal#has(T, Object, Object...)
+     */
+    public static <A> GraphTraversal<A, A> has(final T accessor, final Object value, Object... values) {
+        return __.<A>start().has(accessor, value, values);
+    }
+
+    /**
      * @see GraphTraversal#hasLabel(Object, Object...)
      */
     public static <A> GraphTraversal<A, A> hasLabel(final Object value, Object... values) {


[5/5] tinkerpop git commit: Simplified the pre-processor's prettify script.

Posted by dk...@apache.org.
Simplified the pre-processor's prettify script.


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

Branch: refs/heads/master
Commit: 08a780fd496e1ef93d1b8ba9d2cd8a500cc201a1
Parents: 7c39c1c
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 23:54:50 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Sep 8 00:35:32 2016 +0200

----------------------------------------------------------------------
 docs/preprocessor/awk/prettify.awk | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/08a780fd/docs/preprocessor/awk/prettify.awk
----------------------------------------------------------------------
diff --git a/docs/preprocessor/awk/prettify.awk b/docs/preprocessor/awk/prettify.awk
index f115ec5..cbaa12f 100644
--- a/docs/preprocessor/awk/prettify.awk
+++ b/docs/preprocessor/awk/prettify.awk
@@ -21,14 +21,8 @@
 /^==>\/\/\/\/$/ { doPrint = 1 }
 
 {
-  lastLineStartedWithGremlin = lastLineStartedWithGremlin && inCodeSection
-  if (inCodeSection) {
-    if ($0 ~ /^gremlin> / && ($0 ~ /([.,({]|""")(\s*\/\/.*)?$/ || $0 ~ /^gremlin>  /)) {
-      if (lastLineStartedWithGremlin) gsub(/^gremlin> /, "         ")
-      lastLineStartedWithGremlin = 1
-    } else {
-      lastLineStartedWithGremlin = 0
-    }
+  if (inCodeSection && $0 ~ /^\.*[0-9]+> /) {
+    gsub(/^.{8}/, "        ")
   }
   if (doPrint) print
 }


[2/5] tinkerpop git commit: Fixed `hasLabel`, `hasId`, `hasKey` and `hasValue`.

Posted by dk...@apache.org.
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/a522bd52
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a522bd52
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a522bd52

Branch: refs/heads/master
Commit: a522bd52c5c1637d9b907ac99b7fac4c019f5527
Parents: c82f661
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 10:28:52 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Sep 8 00:35:31 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/a522bd52/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/a522bd52/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);
     }
 
     /**


[3/5] tinkerpop git commit: Added test cases for `hasId` with predicates.

Posted by dk...@apache.org.
Added test cases for `hasId` with predicates.


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

Branch: refs/heads/master
Commit: 114b00b5f5274aa4f6b20ea4d148670bd8f2c049
Parents: 8c2cfb8
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 12:33:17 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Sep 8 00:35:32 2016 +0200

----------------------------------------------------------------------
 .../traversal/step/filter/GroovyHasTest.groovy  | 10 +++++++
 .../process/traversal/step/filter/HasTest.java  | 31 ++++++++++++++++++++
 2 files changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/114b00b5/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
index de8d128..b5ca538 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
@@ -156,6 +156,16 @@ public abstract class GroovyHasTest {
         }
 
         @Override
+        public Traversal<Vertex, Vertex> get_g_V_hasIdXwithinX1_2XX(final Object v1Id, final Object v2Id) {
+            new ScriptTraversal<>(g, "gremlin-groovy", "g.V.hasId(within(v1Id, v2Id))", "v1Id", v1Id, "v2Id", v2Id)
+        }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_in_hasIdXneqX1XX(final Object v1Id) {
+            new ScriptTraversal<>(g, "gremlin-groovy", "g.V.in.hasId(neq(v1Id))", "v1Id", v1Id)
+        }
+
+        @Override
         public Traversal<Vertex, String> get_g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name() {
             new ScriptTraversal<>(g, "gremlin-groovy", "g.V.hasLabel('person').has('age', P.not(lte(10).and(P.not(between(11,20)))).and(lt(29).or(eq(35)))).name")
         }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/114b00b5/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
index aaab647..0f160cd 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
@@ -107,6 +107,10 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Vertex> get_g_V_hasIdX1_2X(final Object v1Id, final Object v2Id);
 
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasIdXwithinX1_2XX(final Object v1Id, final Object v2Id);
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_in_hasIdXneqX1XX(final Object v1Id);
+
     public abstract Traversal<Vertex, String> get_g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name();
 
     @Test
@@ -386,6 +390,7 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         final Traversal<Vertex, Vertex> traversala2 = get_g_V_hasIdX1X(convertToVertexId("marko"));
         final Traversal<Vertex, Vertex> traversalb1 = get_g_VX1_2X(convertToVertexId("marko"), convertToVertexId("vadas"));
         final Traversal<Vertex, Vertex> traversalb2 = get_g_V_hasIdX1_2X(convertToVertexId("marko"), convertToVertexId("vadas"));
+        final Traversal<Vertex, Vertex> traversalb3 = get_g_V_hasIdXwithinX1_2XX(convertToVertexId("marko"), convertToVertexId("vadas"));
         printTraversalForm(traversala1);
         printTraversalForm(traversala2);
         printTraversalForm(traversalb1);
@@ -394,11 +399,13 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         checkResults(Collections.singletonList(convertToVertex(graph, "marko")), traversala2);
         checkResults(Arrays.asList(convertToVertex(graph, "marko"), convertToVertex(graph, "vadas")), traversalb1);
         checkResults(Arrays.asList(convertToVertex(graph, "marko"), convertToVertex(graph, "vadas")), traversalb2);
+        checkResults(Arrays.asList(convertToVertex(graph, "marko"), convertToVertex(graph, "vadas")), traversalb3);
         // if providers don't have their own custom GraphStep, then ignore validating compilation equality
         if ((traversala1.asAdmin().getStartStep() instanceof GraphStep) &&
                 !traversala1.asAdmin().getStartStep().getClass().equals(GraphStep.class)) {
             assertEquals(traversala1, traversala2);
             assertEquals(traversalb1, traversalb2);
+            assertEquals(traversalb1, traversalb3);
             assertNotEquals(traversala1, traversalb1);
             assertNotEquals(traversala1, traversalb2);
             assertNotEquals(traversala2, traversalb1);
@@ -414,6 +421,20 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         checkResults(Arrays.asList("peter", "vadas"), traversal);
     }
 
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_in_hasIdXneqX1XX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_in_hasIdXneqX1XX(convertToVertexId("marko"));
+        printTraversalForm(traversal);
+        int count = 0;
+        while (traversal.hasNext()) {
+            Vertex vertex = traversal.next();
+            assertTrue(vertex.value("name").equals("josh") || vertex.value("name").equals("peter"));
+            count++;
+        }
+        assertEquals(3, count);
+    }
+
     private void assert_g_EX11X(final Object edgeId, final Traversal<Edge, Edge> traversal) {
         printTraversalForm(traversal);
         assertTrue(traversal.hasNext());
@@ -549,6 +570,16 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         }
 
         @Override
+        public Traversal<Vertex, Vertex> get_g_V_hasIdXwithinX1_2XX(final Object v1Id, final Object v2Id) {
+            return g.V().hasId(P.within(v1Id, v2Id));
+        }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_in_hasIdXneqX1XX(final Object v1Id) {
+            return g.V().in().hasId(P.neq(v1Id));
+        }
+
+        @Override
         public Traversal<Vertex, String> get_g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name() {
             return g.V().hasLabel("person").has("age", P.not(P.lte(10).and(P.not(P.between(11, 20)))).and(P.lt(29).or(P.eq(35)))).values("name");
         }


[4/5] tinkerpop git commit: Allow tabs in docs (replace them with 4 spaces prior pre-processing).

Posted by dk...@apache.org.
Allow tabs in docs (replace them with 4 spaces prior pre-processing).


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

Branch: refs/heads/master
Commit: 7c39c1ca2008c2b75247f8d568dba774169056a6
Parents: 114b00b
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Sep 7 19:16:06 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Sep 8 00:35:32 2016 +0200

----------------------------------------------------------------------
 docs/preprocessor/preprocess-file.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7c39c1ca/docs/preprocessor/preprocess-file.sh
----------------------------------------------------------------------
diff --git a/docs/preprocessor/preprocess-file.sh b/docs/preprocessor/preprocess-file.sh
index 9c9a095..1069928 100755
--- a/docs/preprocessor/preprocess-file.sh
+++ b/docs/preprocessor/preprocess-file.sh
@@ -131,7 +131,8 @@ if [ ! ${SKIP} ] && [ $(grep -c '^\[gremlin' ${input}) -gt 0 ]; then
     mv .ext/plugins.txt ext/
   fi
 
-  awk -f ${AWK_SCRIPTS}/prepare.awk ${input} |
+  sed 's/\t/    /g' ${input} |
+  awk -f ${AWK_SCRIPTS}/prepare.awk |
   awk -f ${AWK_SCRIPTS}/init-code-blocks.awk -v TP_HOME="${TP_HOME}" PYTHONPATH="." |
   awk -f ${AWK_SCRIPTS}/progressbar.awk -v tpl=${AWK_SCRIPTS}/progressbar.groovy.template |
   HADOOP_GREMLIN_LIBS="${CONSOLE_HOME}/ext/giraph-gremlin/lib:${CONSOLE_HOME}/ext/tinkergraph-gremlin/lib" bin/gremlin.sh |