ObjectIdGenerators.UUIDGenerator (Jackson-annotations 2.13.0 API)
Date: 2021-09-30

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:
    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
    `UUIDGenerator()`

  - ### Method Summary

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

    - #### UUIDGenerator

          public UUIDGenerator()

  - ### Method Detail

    - #### 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 `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

Copyright © 2008–2021 FasterXML. All rights reserved.