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

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

commit 40131c6e1dca79578cae3b4bbee31dabbb403f8c
Author: Cole-Greer <[email protected]>
AuthorDate: Thu Sep 19 13:05:16 2024 -0700

    update translators, core imports, and parser
---
 .../java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java  | 10 ++++++++++
 .../gremlin/jsr223/DefaultGremlinScriptEngineManager.java      |  2 +-
 .../gremlin/language/translator/PythonTranslateVisitor.java    |  2 +-
 .../gremlin/process/traversal/TraversalStrategies.java         |  5 ++++-
 .../process/traversal/strategy/decoration/OptionsStrategy.java |  2 +-
 .../gremlin/language/translator/GremlinTranslatorTest.java     |  9 +++++++++
 6 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
index e83185382f..28f96bd803 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
@@ -50,7 +50,9 @@ 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.computer.traversal.strategy.decoration.VertexProgramStrategy;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.finalization.ComputerFinalizationStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.MessagePassingReductionStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.verification.VertexProgramRestrictionStrategy;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource;
@@ -75,6 +77,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Connec
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy;
+import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.OptionsStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy;
@@ -88,6 +91,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.Earl
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.FilterRankingStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IdentityRemovalStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategy;
+import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.InlineFilterStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.LazyBarrierStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.MatchPredicateStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.OrderLimitStrategy;
@@ -99,6 +103,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.Comp
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.EdgeLabelVerificationStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LambdaRestrictionStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
+import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReservedKeysVerificationStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.StandardVerificationStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
 import org.apache.tinkerpop.gremlin.structure.Column;
@@ -247,10 +252,15 @@ public final class CoreImports {
         CLASS_IMPORTS.add(Configurations.class);
         // strategies
         CLASS_IMPORTS.add(ConnectiveStrategy.class);
+        CLASS_IMPORTS.add(ComputerFinalizationStrategy.class);
         CLASS_IMPORTS.add(ElementIdStrategy.class);
         CLASS_IMPORTS.add(EventStrategy.class);
         CLASS_IMPORTS.add(HaltedTraverserStrategy.class);
+        CLASS_IMPORTS.add(InlineFilterStrategy.class);
+        CLASS_IMPORTS.add(MessagePassingReductionStrategy.class);
+        CLASS_IMPORTS.add(OptionsStrategy.class);
         CLASS_IMPORTS.add(PartitionStrategy.class);
+        CLASS_IMPORTS.add(ReservedKeysVerificationStrategy.class);
         CLASS_IMPORTS.add(SubgraphStrategy.class);
         CLASS_IMPORTS.add(LazyBarrierStrategy.class);
         CLASS_IMPORTS.add(MatchAlgorithmStrategy.class);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
index e485c05589..84b3d8fa48 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
@@ -53,7 +53,7 @@ import java.util.stream.Stream;
  * This class is based quite heavily on the workings of the {@code 
ScriptEngineManager} supplied in the
  * {@code javax.script} packages, but adds some additional features that are 
specific to Gremlin and TinkerPop.
  * Unfortunately, it's not easily possible to extend {@code 
ScriptEngineManager} directly as there certain behaviors
- * don't appear to be be straightforward to implement and member variables are 
all private. It is important to note
+ * don't appear to be straightforward to implement and member variables are 
all private. It is important to note
  * that this class is designed to provide support for "Gremlin-enabled" {@code 
ScriptEngine} instances (i.e. those
  * that extend from {@link GremlinScriptEngine}) and is not meant to manage 
just any {@code ScriptEngine} instance
  * that may be on the path.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
index 092c41fe5e..0d2aa7a0d1 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
@@ -78,7 +78,7 @@ public class PythonTranslateVisitor extends 
AbstractTranslateVisitor {
         if (ctx.getChildCount() == 1)
             sb.append(ctx.getText()).append("()");
         else {
-            sb.append(ctx.getChild(1).getText()).append("(");
+            sb.append(ctx.getChild(0).getText().equals("new") ? 
ctx.getChild(1).getText() : ctx.getChild(0).getText()).append("(");
 
             final List<ParseTree> configs = ctx.children.stream().
                     filter(c -> c instanceof 
GremlinParser.ConfigurationContext).collect(Collectors.toList());
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
index eca8ba75db..c36afa8081 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
@@ -23,6 +23,7 @@ import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decorati
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.finalization.ComputerFinalizationStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.MessagePassingReductionStrategy;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.verification.VertexProgramRestrictionStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ConnectiveStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategy;
@@ -30,6 +31,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventS
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.OptionsStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy;
+import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SackStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.MatchAlgorithmStrategy;
@@ -263,6 +265,7 @@ public interface TraversalStrategies extends Serializable, 
Cloneable, Iterable<T
             put(LambdaRestrictionStrategy.class.getSimpleName(), 
LambdaRestrictionStrategy.class);
             put(ReadOnlyStrategy.class.getSimpleName(), 
ReadOnlyStrategy.class);
             put(ReservedKeysVerificationStrategy.class.getSimpleName(), 
ReservedKeysVerificationStrategy.class);
+            put(VertexProgramRestrictionStrategy.class.getSimpleName(), 
VertexProgramRestrictionStrategy.class);
         }};
 
         static {
@@ -328,7 +331,7 @@ public interface TraversalStrategies extends Serializable, 
Cloneable, Iterable<T
         /**
          * Unregisters a strategy by its simple name. If the strategy is not 
in the registry then the grammar cannot
          * reference it which means that it cannot be removed from execution 
using
-         * {{@link GraphTraversalSource#withoutStrategies(Class[])}}..
+         * {{@link GraphTraversalSource#withoutStrategies(Class[])}}.
          */
         public static void unregisterStrategy(final Class<? extends 
TraversalStrategy> clazz) {
             GLOBAL_REGISTRY.remove(clazz.getSimpleName());
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/OptionsStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/OptionsStrategy.java
index 1a7a81f46b..78ab8a6d2b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/OptionsStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/OptionsStrategy.java
@@ -82,7 +82,7 @@ public class OptionsStrategy extends 
AbstractTraversalStrategy<TraversalStrategy
         private final Map<String, Object> options = new HashMap<>();
 
         /**
-         * Adds an key to the configuration with the value of {@code true}.
+         * Adds a key to the configuration with the value of {@code true}.
          */
         public Builder with(final String key) {
             return with(key, true);
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
index b16fbf057d..c83c2a111e 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
@@ -601,6 +601,15 @@ public class GremlinTranslatorTest {
                             
"g.withStrategies(PartitionStrategy.build().includeMetaProperties(true).partitionKey(\"x\").create())",
                             "g.withStrategies(new 
PartitionStrategy({includeMetaProperties: true, partitionKey: \"x\"}))",
                             
"g.with_strategies(PartitionStrategy(include_meta_properties=True, 
partition_key='x'))"},
+                    
{"g.withStrategies(PartitionStrategy(includeMetaProperties: true, 
partitionKey:'x'))",
+                            "g.withStrategies(new 
PartitionStrategy(includeMetaProperties:true, partitionKey:'x'))",
+                            "g.withStrategies(new 
PartitionStrategy(includeMetaProperties:boolean0, partitionKey:string0))",
+                            "g.WithStrategies(new 
PartitionStrategy(includeMetaProperties: true, partitionKey: \"x\"))",
+                            
"g.WithStrategies(gremlingo.PartitionStrategy(gremlingo.PartitionStrategyConfig{IncludeMetaProperties:
 true, PartitionKey: \"x\"}))",
+                            "g.withStrategies(new 
PartitionStrategy(includeMetaProperties:true, partitionKey:'x'))",
+                            
"g.withStrategies(PartitionStrategy.build().includeMetaProperties(true).partitionKey(\"x\").create())",
+                            "g.withStrategies(new 
PartitionStrategy({includeMetaProperties: true, partitionKey: \"x\"}))",
+                            
"g.with_strategies(PartitionStrategy(include_meta_properties=True, 
partition_key='x'))"},
                     {"g.withStrategies(new 
SubgraphStrategy(vertices:__.has('name', 'vadas'), edges: has('weight', 
gt(0.5))))",
                             "g.withStrategies(new 
SubgraphStrategy(vertices:__.has('name', 'vadas'), edges:__.has('weight', 
P.gt(0.5))))",
                             "g.withStrategies(new 
SubgraphStrategy(vertices:__.has(string0, string1), edges:__.has(string2, 
P.gt(number0))))",

Reply via email to