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 2024/10/03 16:56:05 UTC

(tinkerpop) branch master updated: Added way to check if the specified label was user defined 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


The following commit(s) were added to refs/heads/master by this push:
     new 2f54a5413f Added way to check if the specified label was user defined CTR
     new dd41ffbe6b Merge branch '3.7-dev'
2f54a5413f is described below

commit 2f54a5413f066ba30ead88f4980d0ff9c9e0135c
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Thu Oct 3 11:36:05 2024 -0400

    Added way to check if the specified label was user defined CTR
---
 CHANGELOG.asciidoc                                             |  1 +
 .../gremlin/process/traversal/step/map/AddVertexStartStep.java |  8 ++++++++
 .../gremlin/process/traversal/step/map/AddVertexStep.java      | 10 ++++++++++
 3 files changed, 19 insertions(+)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 2d7efd06b1..60359aa8e8 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -38,6 +38,7 @@ This release also includes changes from <<release-3-6-8, 3.6.8>>.
 * Added getter method to `ConcatStep`, `ConjoinStep`, `SplitGlobalStep` and `SplitLocalStep` for their private fields.
 * Fixed older driver GraphBinary compatibility problems where using `ReferenceElementStrategy`, properties on elements returned as `null` instead of empty `List`.
 * Gremlin Server docker containers shutdown gracefully when receiving a SIGTERM.
+* Added 'userProvidedLabel' property to detect if the default label was supplied explicitly or not.
 * Added DefaultIdManager.STRING for proper string id creation/handling.
 * Allowed specification of an `Operator` as a reducer in `withSideEffect` when parsing with the grammar.
 * Fixed bug in Bytecode build logic where duplicate strategies were added instead of replacing the existing ones.
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
index 3ca6efff08..fd52f445e8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
@@ -50,15 +50,22 @@ public class AddVertexStartStep extends AbstractStep<Vertex, Vertex>
     private Parameters parameters = new Parameters();
     private boolean first = true;
     private CallbackRegistry<Event.VertexAddedEvent> callbackRegistry;
+    private boolean userProvidedLabel;
 
     public AddVertexStartStep(final Traversal.Admin traversal, final String label) {
         super(traversal);
         this.parameters.set(this, T.label, null == label ? Vertex.DEFAULT_LABEL : label);
+        userProvidedLabel = label != null;
     }
 
     public AddVertexStartStep(final Traversal.Admin traversal, final Traversal<?, String> vertexLabelTraversal) {
         super(traversal);
         this.parameters.set(this, T.label, null == vertexLabelTraversal ? Vertex.DEFAULT_LABEL : vertexLabelTraversal);
+        userProvidedLabel = vertexLabelTraversal != null;
+    }
+
+    public boolean hasUserProvidedLabel() {
+        return userProvidedLabel;
     }
 
     @Override
@@ -142,6 +149,7 @@ public class AddVertexStartStep extends AbstractStep<Vertex, Vertex>
     public AddVertexStartStep clone() {
         final AddVertexStartStep clone = (AddVertexStartStep) super.clone();
         clone.parameters = this.parameters.clone();
+        clone.userProvidedLabel = this.userProvidedLabel;
         return clone;
     }
 }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
index 80597ca86c..0dfb55c2a1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
@@ -45,15 +45,22 @@ public class AddVertexStep<S> extends ScalarMapStep<S, Vertex>
 
     private Parameters parameters = new Parameters();
     private CallbackRegistry<Event.VertexAddedEvent> callbackRegistry;
+    private boolean userProvidedLabel;
 
     public AddVertexStep(final Traversal.Admin traversal, final String label) {
         super(traversal);
         this.parameters.set(this, T.label, null == label ? Vertex.DEFAULT_LABEL : label);
+        userProvidedLabel = label != null;
     }
 
     public AddVertexStep(final Traversal.Admin traversal, final Traversal.Admin<S,String> vertexLabelTraversal) {
         super(traversal);
         this.parameters.set(this, T.label, null == vertexLabelTraversal ? Vertex.DEFAULT_LABEL : vertexLabelTraversal);
+        userProvidedLabel = vertexLabelTraversal != null;
+    }
+
+    public boolean hasUserProvidedLabel() {
+        return userProvidedLabel;
     }
 
     @Override
@@ -73,6 +80,8 @@ public class AddVertexStep<S> extends ScalarMapStep<S, Vertex>
 
     @Override
     public void configure(final Object... keyValues) {
+        if (keyValues[0] == T.label) userProvidedLabel = true;
+
         if (keyValues[0] == T.label && this.parameters.contains(T.label)) {
             if (this.parameters.contains(T.label, Vertex.DEFAULT_LABEL)) {
                 this.parameters.remove(T.label);
@@ -127,6 +136,7 @@ public class AddVertexStep<S> extends ScalarMapStep<S, Vertex>
     public AddVertexStep<S> clone() {
         final AddVertexStep<S> clone = (AddVertexStep<S>) super.clone();
         clone.parameters = this.parameters.clone();
+        clone.userProvidedLabel = this.userProvidedLabel;
         return clone;
     }
 }