Class ObjectIdGenerators.UUIDGenerator

java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.annotation.ObjectIdGenerator<T>
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.annotation.ObjectIdGenerators.UUIDGenerator
All Implemented Interfaces:
Serializable
Enclosing class:
ObjectIdGenerators

public static final class ObjectIdGenerators.UUIDGenerator extends ObjectIdGenerator<T>
Implementation that just uses UUIDs as reliably unique identifiers: downside is that resulting String is 36 characters long.

One difference to other generators is that scope is always set as Object.class (regardless of arguments): this because UUIDs are globally unique, and scope has no meaning.

See Also:
  • Field Details

    • _scope

      protected final Class<?> _scope
  • Constructor Details

    • UUIDGenerator

      public UUIDGenerator()
  • Method Details

    • forScope

      public ObjectIdGenerator<UUID> forScope(Class<?> scope)
      Can just return base instance since this is essentially scopeless
      Specified by:
      forScope in class ObjectIdGenerator<UUID>
    • newForSerialization

      public ObjectIdGenerator<UUID> newForSerialization(Object context)
      Can just return base instance since this is essentially scopeless
      Specified by:
      newForSerialization in class ObjectIdGenerator<UUID>
      Parameters:
      context - Serialization context object used (of type edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.SerializerProvider); may be needed by more complex generators to access contextual information such as configuration.
    • generateId

      public UUID generateId(Object forPojo)
      Description copied from class: ObjectIdGenerator
      Method used for generating a new Object Identifier to serialize for given POJO.
      Parameters:
      forPojo - POJO for which identifier is needed
      Returns:
      Object Identifier to use.
    • key

      public ObjectIdGenerator.IdKey key(Object key)
      Description copied from class: ObjectIdGenerator
      Method for constructing key to use for ObjectId-to-POJO maps.
      Specified by:
      key in class ObjectIdGenerator<UUID>
    • canUseFor

      public boolean canUseFor(ObjectIdGenerator<?> gen)
      Since UUIDs are always unique, let's fully ignore scope definition
      Returns:
      True if this instance can be used as-is; false if not
    • getScope

      public final Class<?> getScope()
      Specified by:
      getScope in class ObjectIdGenerator<T>