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

Cole-Greer pushed a commit to branch simplePDT
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 45fe41b2edef34421ae0780bde83331b38e06d28
Author: Cole Greer <[email protected]>
AuthorDate: Thu Jun 25 08:45:42 2026 -0700

    PrimitivePDT review nits: document hydrated exclusion, drop no-op 
transient, clarify JS PDT quoting
    
    Minor cleanups from the tinkerpop-2gy code review (no behavioral change):
    
    - PrimitiveProviderDefinedType: document why hydrated is excluded from
      equals/hashCode (mirroring ProviderDefinedType) and drop the no-op
      `transient` modifier (the type is not Serializable), aligning with the
      composite POJO's field declaration.
    - gremlin-javascript gremlin-lang: comment that PDT literals deliberately 
use
      double-quoted strings (consistent with the composite PDT form), with
      JSON.stringify handling escaping.
    
    Verified: gremlin-core PrimitiveProviderDefinedTypeTest 10/0/0; 
gremlin-javascript
    unit (gremlin-lang + pdt-registry) 228 passing.
    
    tinkerpop-2gy
    
    Assisted-by: Kiro:claude-opus-4.8
---
 .../gremlin/structure/io/pdt/PrimitiveProviderDefinedType.java    | 8 +++++++-
 gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts         | 2 ++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/pdt/PrimitiveProviderDefinedType.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/pdt/PrimitiveProviderDefinedType.java
index dbf3938ac2..4315c1826c 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/pdt/PrimitiveProviderDefinedType.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/pdt/PrimitiveProviderDefinedType.java
@@ -27,7 +27,7 @@ public final class PrimitiveProviderDefinedType {
 
     private final String name;
     private final String value;
-    private transient Object hydrated;
+    private Object hydrated;
 
     public PrimitiveProviderDefinedType(final String name, final String value) 
{
         if (name == null || name.isEmpty())
@@ -62,6 +62,12 @@ public final class PrimitiveProviderDefinedType {
         return hydrated;
     }
 
+    /**
+     * Equality is based solely on {@code name} and {@code value} (the 
serialized wire form).
+     * The {@code hydrated} field is intentionally excluded — it is a 
transient, derived view
+     * cached by the deserializer via {@link #withHydrated(Object)} and is not 
part of the
+     * type's logical identity.
+     */
     @Override
     public boolean equals(final Object o) {
         if (this == o) return true;
diff --git a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts 
b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
index fdc8bbfa9a..d204582372 100644
--- a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
+++ b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
@@ -132,6 +132,8 @@ export default class GremlinLang {
       return arg.name;
     }
     if (arg instanceof PrimitiveProviderDefinedType) {
+      // PDT literals use double-quoted strings (consistent with the composite 
PDT form below);
+      // JSON.stringify handles special-character escaping, then the outer 
quotes are stripped.
       const escapedName = JSON.stringify(arg.name).slice(1, -1);
       const escapedValue = JSON.stringify(arg.value).slice(1, -1);
       return `PDT("${escapedName}","${escapedValue}")`;

Reply via email to