TINKERPOP-786 Improved flexbility of handling __ for DSLs in java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d6b0122b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d6b0122b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d6b0122b Branch: refs/heads/tp32-glv Commit: d6b0122b55ebaf4fc91c3c0a0139ca72984a1834 Parents: 651c1c6 Author: Stephen Mallette <[email protected]> Authored: Fri May 26 07:26:30 2017 -0400 Committer: Stephen Mallette <[email protected]> Committed: Fri May 26 07:26:30 2017 -0400 ---------------------------------------------------------------------- .../gremlin/process/traversal/dsl/GremlinDslProcessor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d6b0122b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/GremlinDslProcessor.java ---------------------------------------------------------------------- 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 5088d21..470dd4b 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 @@ -178,7 +178,12 @@ public class GremlinDslProcessor extends AbstractProcessor { methodToAdd.varargs(true); methodToAdd.addStatement("return inject(starts)", methodName); } else { - addMethodBody(methodToAdd, templateMethod, "return __.<A>start().$L(", ")", methodName); + if (templateMethod.getTypeParameters().isEmpty()) { + final List<? extends TypeMirror> types = getTypeArguments(templateMethod); + addMethodBody(methodToAdd, templateMethod, "return __.<$T>start().$L(", ")", types.get(0), methodName); + } else { + addMethodBody(methodToAdd, templateMethod, "return __.<A>start().$L(", ")", methodName); + } } anonymousClass.addMethod(methodToAdd.build());
