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())) {