This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit e3a2663a971d744d1c3b959dfaff9881e372d3a1
Author: Stephen Mallette <[email protected]>
AuthorDate: Sun Aug 25 09:51:42 2024 -0400

    wip - fixed .NET translator for conjoin
---
 .../translator/DotNetTranslateVisitor.java         | 10 +++++++++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 24 +++++++++++-----------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index 7ab9819c2c..1dbef2042b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -935,6 +935,16 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
         }
     }
 
+    @Override
+    public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
+        final String step = ctx.getChild(0).getText();
+        sb.append(convertToPascalCase(step));
+        sb.append("((string) ");
+        visit(ctx.stringArgument());
+        sb.append(")");
+        return null;
+    }
+
     @Override
     public Void visitTraversalMethod_propertyMap(final 
GremlinParser.TraversalMethod_propertyMapContext ctx) {
         return handleGenerics(ctx);
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index f9388d42a0..6264b23da7 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -703,18 +703,18 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                
{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values<object>("name").Concat(__.Select<object>("a").Label()).Concat(__.Select<object>("a").InV().Values<object>("name"))}},
 
                
{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values<object>("name").Concat(__.Select<object>("a").Label(),
 __.Select<object>("a").InV().Values<object>("name"))}}, 
                {"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV("person").Property("name", "marko").Property("age", 
29).As("marko").AddV("person").Property("name", "vadas").Property("age", 
27).As("vadas").AddV("software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV("person").Property("name", "josh").Property("age", 
32).As("josh").AddV("software").Property("name", "ripple [...]
-               {"g_injectXnullX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(null).Conjoin("1")}}, 
-               {"g_V_valuesXnameX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("name").Conjoin("1")}}, 
-               {"g_V_valuesXnonexistantX_fold_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("nonexistant").Fold().Conjoin(";")}}, 
-               {"g_V_valuesXnameX_order_fold_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("name").Order().Fold().Conjoin("_")}}, 
-               {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin(";")}}, 
-               {"g_V_valuesXageX_order_fold_conjoinXslashX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin(p["xx1"])}}, 
-               {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Out().Path().By(__.Values<object>("name").ToUpper()).Conjoin("MARKO")}},
 
-               {"g_injectXmarkoX_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin("-")}}, 
-               
{"g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().ValueMap<object, 
object>("location").Select<object>(Column.Values).Unfold<object>().Order(Scope.Local).Conjoin("1")}},
 
-               {"g_V_out_out_path_byXnameX_conjoinXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out().Out().Path().By("name").Conjoin("")}}, 
-               {"g_injectXa_null_bX_conjoinXxyzX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin("xyz")}}, 
-               {"g_injectX3_threeX_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin(";")}}, 
+               {"g_injectXnullX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(null).Conjoin((string) "1")}}, 
+               {"g_V_valuesXnameX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("name").Conjoin((string) "1")}}, 
+               {"g_V_valuesXnonexistantX_fold_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("nonexistant").Fold().Conjoin((string) ";")}}, 
+               {"g_V_valuesXnameX_order_fold_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("name").Order().Fold().Conjoin((string) "_")}}, 
+               {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin((string) ";")}}, 
+               {"g_V_valuesXageX_order_fold_conjoinXslashX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin((string) 
p["xx1"])}}, 
+               {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Out().Path().By(__.Values<object>("name").ToUpper()).Conjoin((string) 
"MARKO")}}, 
+               {"g_injectXmarkoX_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin((string) "-")}}, 
+               
{"g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().ValueMap<object, 
object>("location").Select<object>(Column.Values).Unfold<object>().Order(Scope.Local).Conjoin((string)
 "1")}}, 
+               {"g_V_out_out_path_byXnameX_conjoinXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out().Out().Path().By("name").Conjoin((string) "")}}, 
+               {"g_injectXa_null_bX_conjoinXxyzX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin((string) "xyz")}}, 
+               {"g_injectX3_threeX_conjoinX_X", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(p["xx1"]).Conjoin((string) ";")}}, 
                {"g_V_connectedComponent_hasXcomponentX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}},
 
                {"g_V_dedup_connectedComponent_hasXcomponentX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Dedup().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}},
 
                
{"g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("software").ConnectedComponent().Project<object>("name", 
"component").By("name").By("gremlin.connectedComponentVertexProgram.component")}},
 

Reply via email to