You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/08/31 18:24:08 UTC

[2/3] tinkerpop git commit: Improved handling of gremlin tokens in javascript CTR

Improved handling of gremlin tokens in javascript CTR


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

Branch: refs/heads/master
Commit: 05988461773662be765e6b7d256918e6edc0b71d
Parents: c0a35e2
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Aug 31 13:43:37 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Aug 31 13:43:37 2018 -0400

----------------------------------------------------------------------
 gremlin-javascript/glv/TraversalSource.template |  13 +--
 gremlin-javascript/glv/generate.groovy          |  14 ++-
 .../gremlin-javascript/lib/process/traversal.js | 105 +++++++++++++++----
 3 files changed, 105 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05988461/gremlin-javascript/glv/TraversalSource.template
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/TraversalSource.template b/gremlin-javascript/glv/TraversalSource.template
index 321956c..ffe0fbc 100644
--- a/gremlin-javascript/glv/TraversalSource.template
+++ b/gremlin-javascript/glv/TraversalSource.template
@@ -111,13 +111,14 @@ class Traversal {
   };
 }
 
-class IO {
-<% io.each {k,v -> %>
-    static get <%= k %>() {
-        return "<%= v %>"
-    }
+<% tokens.each { k,v -> %>
+class <%= k %> {
+<% v.each {a,b -> %>
+ static get <%= a %>() {
+   return "<%= b %>"
+ }
+<% } %>}
 <% } %>
-}
 
 class P {
   /**

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05988461/gremlin-javascript/glv/generate.groovy
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/generate.groovy b/gremlin-javascript/glv/generate.groovy
index a339689..aab55d4 100644
--- a/gremlin-javascript/glv/generate.groovy
+++ b/gremlin-javascript/glv/generate.groovy
@@ -20,6 +20,10 @@
 
 import groovy.text.GStringTemplateEngine
 import org.apache.tinkerpop.gremlin.jsr223.CoreImports
+import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ConnectedComponent
+import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRank
+import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressure
+import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPath
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource
@@ -50,6 +54,12 @@ def determineVersion = {
     return mavenVersion.replace("-SNAPSHOT", "-alpha1")
 }
 
+def gatherTokensFrom = { tokenClasses ->
+    def m = [:]
+    tokenClasses.each { tc -> m << [(tc.simpleName) : tc.getFields().sort{ a, b -> a.name <=> b.name }.collectEntries{ f -> [(f.name) : f.get(null)]}]}
+    return m
+}
+
 def binding = ["enums": CoreImports.getClassImports()
         .findAll { Enum.class.isAssignableFrom(it) }
         .sort { a, b -> a.getSimpleName() <=> b.getSimpleName() },
@@ -89,9 +99,7 @@ def binding = ["enums": CoreImports.getClassImports()
                        collect { it.name }.
                        unique().
                        sort { a, b -> a <=> b },
-               "io": IO.class.getFields().
-                       sort{ a, b -> a.name <=> b.name }.
-                       collectEntries{ f -> [(f.name) : f.get(null)]},
+               "tokens": gatherTokensFrom([IO, ConnectedComponent, ShortestPath, PageRank, PeerPressure]),
                "toJs": toJs,
                "version": determineVersion(),
                "decapitalize": decapitalize]

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05988461/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
index 09aec91..2b9ba26 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
@@ -111,34 +111,103 @@ class Traversal {
   };
 }
 
+
 class IO {
 
-    static get graphml() {
-        return "graphml"
-    }
+ static get graphml() {
+   return "graphml"
+ }
 
-    static get graphson() {
-        return "graphson"
-    }
+ static get graphson() {
+   return "graphson"
+ }
 
-    static get gryo() {
-        return "gryo"
-    }
+ static get gryo() {
+   return "gryo"
+ }
 
-    static get reader() {
-        return "~tinkerpop.io.reader"
-    }
+ static get reader() {
+   return "~tinkerpop.io.reader"
+ }
 
-    static get registry() {
-        return "~tinkerpop.io.registry"
-    }
+ static get registry() {
+   return "~tinkerpop.io.registry"
+ }
 
-    static get writer() {
-        return "~tinkerpop.io.writer"
-    }
+ static get writer() {
+   return "~tinkerpop.io.writer"
+ }
+}
 
+class ConnectedComponent {
+
+ static get component() {
+   return "gremlin.connectedComponentVertexProgram.component"
+ }
+
+ static get edges() {
+   return "~tinkerpop.connectedComponent.edges"
+ }
+
+ static get propertyName() {
+   return "~tinkerpop.connectedComponent.propertyName"
+ }
 }
 
+class ShortestPath {
+
+ static get distance() {
+   return "~tinkerpop.shortestPath.distance"
+ }
+
+ static get edges() {
+   return "~tinkerpop.shortestPath.edges"
+ }
+
+ static get includeEdges() {
+   return "~tinkerpop.shortestPath.includeEdges"
+ }
+
+ static get maxDistance() {
+   return "~tinkerpop.shortestPath.maxDistance"
+ }
+
+ static get target() {
+   return "~tinkerpop.shortestPath.target"
+ }
+}
+
+class PageRank {
+
+ static get edges() {
+   return "~tinkerpop.pageRank.edges"
+ }
+
+ static get propertyName() {
+   return "~tinkerpop.pageRank.propertyName"
+ }
+
+ static get times() {
+   return "~tinkerpop.pageRank.times"
+ }
+}
+
+class PeerPressure {
+
+ static get edges() {
+   return "~tinkerpop.peerPressure.edges"
+ }
+
+ static get propertyName() {
+   return "~tinkerpop.peerPressure.propertyName"
+ }
+
+ static get times() {
+   return "~tinkerpop.peerPressure.times"
+ }
+}
+
+
 class P {
   /**
    * Represents an operation.