java.lang.Object
org.apache.tinkerpop.gremlin.structure.io.pdt.PDTRegistry

public final class PDTRegistry extends Object
Registry for ProviderDefinedTypeAdapter instances that supports hydration of CompositePDT values into typed objects.
  • Method Details

    • create

      public static PDTRegistry create()
      Creates a registry populated via ServiceLoader discovery.
    • empty

      public static PDTRegistry empty()
      Creates an empty registry for manual registration.
    • register

      public void register(ProviderDefinedTypeAdapter<?> adapter)
      Registers an adapter. Composite adapters (CompositePDTAdapter) are stored in composite maps; primitive adapters (PrimitivePDTAdapter) are stored in primitive maps.
      Throws:
      IllegalArgumentException - if the adapter's target class is already registered under the other kind
    • register

      public void register(Class<?>... annotatedClasses)
      Registers one or more classes annotated with ProviderDefined for automatic round-trip hydration. An adapter is synthesized from the annotation metadata using reflection.
      Throws:
      IllegalArgumentException - if any class is not annotated with ProviderDefined
    • getCompositeAdapterByName

      public Optional<CompositePDTAdapter<?>> getCompositeAdapterByName(String name)
    • getCompositeAdapterByClass

      public Optional<CompositePDTAdapter<?>> getCompositeAdapterByClass(Class<?> clazz)
    • getPrimitiveAdapterByName

      public Optional<PrimitivePDTAdapter<?>> getPrimitiveAdapterByName(String name)
    • getPrimitiveAdapterByClass

      public Optional<PrimitivePDTAdapter<?>> getPrimitiveAdapterByClass(Class<?> clazz)
    • hydrate

      public Object hydrate(CompositePDT pdt)
      Attempts to hydrate a CompositePDT into a typed object using a registered adapter. Recursively hydrates nested PDT values in the fields map (including those inside Lists, Sets, and Maps) regardless of whether the outer type itself has a registered adapter — so a registered inner type is hydrated even when nested inside an unregistered outer PDT. Returns the original PDT (with nested values hydrated) if no adapter is found for the outer type, or if the adapter throws an exception.
    • hydratePrimitive

      public Object hydratePrimitive(PrimitivePDT pdt)
      Attempts to hydrate a PrimitivePDT into a typed object using a registered PrimitivePDTAdapter. Returns the original primitive PDT if no adapter is found or if the adapter throws an exception.