Package com.fasterxml.jackson.annotation

# Class ObjectIdGenerators.UUIDGenerator

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

All Implemented Interfaces:
  `Serializable`

Enclosing class:
  `ObjectIdGenerators`

public static final class ObjectIdGenerators.UUIDGenerator extends ObjectIdGenerator<UUID>
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`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final Class<?>`
`_scope`

## Constructor Summary

Constructors
Constructor
Description
`UUIDGenerator()`

## Method Summary

Modifier and Type
Method
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.
`final Class<?>`
`getScope()`
`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`

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