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

colegreer pushed a commit to branch gvalue-feature-tests
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-feature-tests by this 
push:
     new 0cd1472e5b Update AddEdgeStep to no longer unbox GValues
0cd1472e5b is described below

commit 0cd1472e5bcdba7f78c249bba9d6fb0b8aa550c8
Author: Cole-Greer <[email protected]>
AuthorDate: Mon Nov 25 17:54:29 2024 -0800

    Update AddEdgeStep to no longer unbox GValues
---
 .../tinkerpop/gremlin/process/traversal/step/GValue.java      |  2 +-
 .../gremlin/process/traversal/step/map/AddEdgeStep.java       | 11 +++++++----
 .../traversal/strategy/decoration/PartitionStrategyTest.java  |  3 ++-
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index 9dd741a999..b9f88684e3 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
@@ -367,7 +367,7 @@ public class GValue<V> implements Cloneable, Serializable {
 
     /**
      * Checks the type of the object against the provided {@link GType}. If 
the object is a {@link GValue} then it
-     * can directly check the type, otherwise it will test the given object's 
class itself using the mappign on the
+     * can directly check the type, otherwise it will test the given object's 
class itself using the mapping on the
      * {@link GType}.
      */
     public static boolean instanceOf(final Object o, final GType type) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
index e0dc92a5c4..258f8421ab 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
@@ -58,12 +58,12 @@ public class AddEdgeStep<S> extends ScalarMapStep<S, Edge>
 
     public AddEdgeStep(final Traversal.Admin traversal, final String 
edgeLabel) {
         super(traversal);
-        this.parameters.set(this, T.label, edgeLabel);
+        this.parameters.set(this, T.label, GValue.of(null, edgeLabel));
     }
 
     public AddEdgeStep(final Traversal.Admin traversal, final GValue<String> 
edgeLabel) {
         super(traversal);
-        this.parameters.set(this, T.label, edgeLabel.get());
+        this.parameters.set(this, T.label, edgeLabel);
     }
 
     public AddEdgeStep(final Traversal.Admin traversal, final 
Traversal.Admin<S,String> edgeLabelTraversal) {
@@ -103,7 +103,10 @@ public class AddEdgeStep<S> extends ScalarMapStep<S, Edge>
 
     @Override
     protected Edge map(final Traverser.Admin<S> traverser) {
-        final String edgeLabel = this.parameters.get(traverser, T.label, () -> 
Edge.DEFAULT_LABEL).get(0);
+        Object literalOrVar = this.parameters.get(traverser, T.label, () -> 
GValue.of(null, Edge.DEFAULT_LABEL)).get(0);
+        final GValue<String> edgeLabel = literalOrVar instanceof String ?
+                GValue.ofString(null, (String) literalOrVar) :
+                (GValue<String>) literalOrVar;
 
         final Object theTo;
         try {
@@ -143,7 +146,7 @@ public class AddEdgeStep<S> extends ScalarMapStep<S, Edge>
             fromVertex = ((Attachable<Vertex>) fromVertex)
                     
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
 
-        final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, 
this.parameters.getKeyValues(traverser, TO, FROM, T.label));
+        final Edge edge = fromVertex.addEdge(edgeLabel.get(), toVertex, 
this.parameters.getKeyValues(traverser, TO, FROM, T.label));
         EventUtil.registerEdgeCreation(callbackRegistry, getTraversal(), edge);
         return edge;
     }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
index b4d25f2626..fc811b9229 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
@@ -117,7 +118,7 @@ public class PartitionStrategyTest {
                     final List<AddEdgeStep> addEdgeSteps = 
TraversalHelper.getStepsOfAssignableClass(AddEdgeStep.class, 
traversal.asAdmin());
                     assertEquals(1, addEdgeSteps.size());
                     addEdgeSteps.forEach(s -> {
-                        assertEquals(repr, "test", 
s.getParameters().get(T.label, () -> Edge.DEFAULT_LABEL).get(0));
+                        assertEquals(repr, GValue.of(null, "test"), 
s.getParameters().get(T.label, () -> Edge.DEFAULT_LABEL).get(0));
                         assertEquals(repr, "a", s.getParameters().get("p", 
null).get(0));
                     });
                 } else if 
(TraversalHelper.hasStepOfAssignableClass(AddVertexStep.class, 
traversal.asAdmin())) {

Reply via email to