com.fasterxml.jackson.annotation

## Class ObjectIdGenerators.UUIDGenerator

- java.lang.Object
- - com.fasterxml.jackson.annotation.ObjectIdGenerator<T>
  - - com.fasterxml.jackson.annotation.ObjectIdGenerators.UUIDGenerator

- All Implemented Interfaces:
    java.io.Serializable
  Enclosing class:
    ObjectIdGenerators

      public static final class ObjectIdGenerators.UUIDGenerator
      extends ObjectIdGenerator<T>

  Implementation that just uses `UUID`s 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:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.annotation.ObjectIdGenerator

      `ObjectIdGenerator.IdKey`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ObjectIdGenerators.UUIDGenerator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canUseFor(ObjectIdGenerator<?> gen)` Since UUIDs are always unique, let's fully ignore scope definition
    `ObjectIdGenerator<java.util.UUID>` | `forScope(java.lang.Class<?> scope)` Can just return base instance since this is essentially scopeless
    `java.util.UUID` | `generateId(java.lang.Object forPojo)` Method used for generating a new Object Identifier to serialize for given POJO.
    `ObjectIdGenerator.IdKey` | `key(java.lang.Object key)` Method for constructing key to use for ObjectId-to-POJO maps.
    `ObjectIdGenerator<java.util.UUID>` | `newForSerialization(java.lang.Object context)` Can just return base instance since this is essentially scopeless

    - ### Methods inherited from class com.fasterxml.jackson.annotation.ObjectIdGenerator

      `isValidReferencePropertyName, maySerializeAsObject`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ObjectIdGenerators.UUIDGenerator

          public ObjectIdGenerators.UUIDGenerator()

  - ### Method Detail

    - #### forScope

          public ObjectIdGenerator<java.util.UUID> forScope(java.lang.Class<?> scope)

      Can just return base instance since this is essentially scopeless
      Specified by:
        `forScope` in class `ObjectIdGenerator<java.util.UUID>`

    - #### newForSerialization

          public ObjectIdGenerator<java.util.UUID> newForSerialization(java.lang.Object context)

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

    - #### generateId

          public java.util.UUID generateId(java.lang.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(java.lang.Object key)

      Description copied from class: `ObjectIdGenerator`
      Method for constructing key to use for ObjectId-to-POJO maps.
      Specified by:
        `key` in class `ObjectIdGenerator<java.util.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