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.