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 2020/12/22 20:26:16 UTC
[tinkerpop] 03/03: TINKERPOP-2494 Update Translator docs to include
parameter extraction functionality 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
commit 41e50ff2f1e14ebe22f42d763eac8db056c80766
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Tue Dec 22 15:25:31 2020 -0500
TINKERPOP-2494 Update Translator docs to include parameter extraction functionality CTR
---
docs/src/reference/the-traversal.asciidoc | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index d45e34a..190a5f4 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -4285,3 +4285,22 @@ console.log(translator.translate(t));
// OUTPUT: g.V().has('person','name','marko').where(__.in('knows')).values('age')
----
+The JVM-based translator has the added option of parameter extraction, where the translation process will attempt to
+identify opportunities to generate an output that would replace constant values with parameters. The parameters would
+then be extracted and returned as part of the `Script` object:
+
+[source,java]
+----
+Traversal<Vertex,Integer> t = g.V().has("person","name","marko").
+ where(__.in("knows")).
+ values("age");
+// specify true to attempt parameter extraction
+Translator.ScriptTranslator translator = GroovyTranslator.of("g", true);
+Script s = translator.translate(t);
+System.out.println(s.getScript());
+// OUTPUT: g.V().has(_args_0,_args_1,_args_2).where(__.in(_args_3)).values(_args_4)
+System.out.println(s.parameters);
+// OUTPUT: Optional[{_args_0=person, _args_2=marko, _args_1=name, _args_4=age, _args_3=knows}]
+---
+
+