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 2019/05/03 20:23:34 UTC
[tinkerpop] branch master updated: TINKERPOP-2208 Added inject() to
steps geneerated by the DSL TraversalSource CTR
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new 30b2535 TINKERPOP-2208 Added inject() to steps geneerated by the DSL TraversalSource CTR
new f6489b7 Merge branch 'tp33'
30b2535 is described below
commit 30b25351a43d94c13f1524ec4dc10ead2cf43fbf
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Fri May 3 16:02:18 2019 -0400
TINKERPOP-2208 Added inject() to steps geneerated by the DSL TraversalSource CTR
---
CHANGELOG.asciidoc | 1 +
.../gremlin/process/traversal/dsl/GremlinDslProcessor.java | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 6099549..c612084 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
=== TinkerPop 3.3.7 (Release Date: NOT OFFICIALLY RELEASED YET)
* Improved folding of `property()` step into related mutating steps.
+* Added `inject()` to steps generated on the DSL `TraversalSource`.
* Removed `gperfutils` dependencies from Gremlin Console.
* Fixed `PartitionStrategy` when setting vertex label and having `includeMetaProperties` configured to `true`.
* Ensure `gremlin.sh` works when directories contain spaces.
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/GremlinDslProcessor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/GremlinDslProcessor.java
index e30cdf6..8397a5d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/GremlinDslProcessor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/GremlinDslProcessor.java
@@ -18,6 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.process.traversal.dsl;
+import com.squareup.javapoet.ArrayTypeName;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.JavaFile;
import com.squareup.javapoet.MethodSpec;
@@ -34,6 +35,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStartStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep;
import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
@@ -329,6 +331,18 @@ public class GremlinDslProcessor extends AbstractProcessor {
.addStatement("return ($T) traversal.asAdmin().addStep(new $T(traversal, $T.class, true, edgeIds))", ctx.traversalClassName, GraphStep.class, Edge.class)
.returns(ParameterizedTypeName.get(ctx.traversalClassName, ClassName.get(Edge.class), ClassName.get(Edge.class)))
.build());
+ traversalSourceClass.addMethod(MethodSpec.methodBuilder("inject")
+ .addModifiers(Modifier.PUBLIC)
+ .addAnnotation(Override.class)
+ .addParameter(ArrayTypeName.of(TypeVariableName.get("S")), "starts")
+ .varargs(true)
+ .addTypeVariable(TypeVariableName.get("S"))
+ .addStatement("$N clone = this.clone()", ctx.traversalSourceClazz)
+ .addStatement("clone.getBytecode().addStep($T.inject, starts)", GraphTraversal.Symbols.class)
+ .addStatement("$N traversal = new $N(clone)", ctx.defaultTraversalClazz, ctx.defaultTraversalClazz)
+ .addStatement("return ($T) traversal.asAdmin().addStep(new $T(traversal, starts))", ctx.traversalClassName, InjectStep.class)
+ .returns(ParameterizedTypeName.get(ctx.traversalClassName, TypeVariableName.get("S"), TypeVariableName.get("S")))
+ .build());
traversalSourceClass.addMethod(MethodSpec.methodBuilder("getAnonymousTraversalClass")
.addModifiers(Modifier.PUBLIC)
.addAnnotation(Override.class)