com.fasterxml.jackson.annotation

## Class ObjectIdGenerators.StringIdGenerator

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

All Implemented Interfaces:
  Serializable

Enclosing class:
  ObjectIdGenerators

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

Implementation that will accept arbitrary (but unique) String Ids on deserialization, and (by default) use random UUID generation similar to `ObjectIdGenerators.UUIDGenerator` for generation ids.

This generator is most useful for cases where another system creates String Ids (of arbitrary structure, if any), and Jackson only needs to keep track of id-to-Object mapping. Generation also works, although if UUIDs are always used, `ObjectIdGenerators.UUIDGenerator` is a better match as it will also validate ids being used.

Since:
  2.7
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
`StringIdGenerator()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `canUseFor(ObjectIdGenerator<?> gen)` Method called to check whether this generator instance can be used for Object Ids of specific generator type and scope; determination is based by passing a configured "blueprint" (prototype) instance; from which the actual instances are created (using `ObjectIdGenerator.newForSerialization(java.lang.Object)`).
`ObjectIdGenerator<String>` `forScope(Class<?> scope)` Factory method to create a blueprint instance for specified scope.
`String` `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<String>` `newForSerialization(Object context)` Factory method called to create a new instance to use for serialization: needed since generators may have state (next id to produce).

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

#### StringIdGenerator

    public StringIdGenerator()

### Method Detail

#### forScope

    public ObjectIdGenerator<String> forScope(Class<?> scope)

Description copied from class: `ObjectIdGenerator`
Factory method to create a blueprint instance for specified scope. Generators that do not use scope may return 'this'.

Specified by:
  `forScope` in class `ObjectIdGenerator<String>`

#### newForSerialization

    public ObjectIdGenerator<String> newForSerialization(Object context)

Description copied from class: `ObjectIdGenerator`
Factory method called to create a new instance to use for serialization: needed since generators may have state (next id to produce).

Note that actual type of 'context' is `com.fasterxml.jackson.databind.SerializerProvider`, but can not be declared here as type itself (as well as call to this object) comes from databind package.

Specified by:
  `newForSerialization` in class `ObjectIdGenerator<String>`
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 String 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<String>`

#### canUseFor

    public boolean canUseFor(ObjectIdGenerator<?> gen)

Description copied from class: `ObjectIdGenerator`
Method called to check whether this generator instance can be used for Object Ids of specific generator type and scope; determination is based by passing a configured "blueprint" (prototype) instance; from which the actual instances are created (using `ObjectIdGenerator.newForSerialization(java.lang.Object)`).

Returns:
  True if this instance can be used as-is; false if not