Package com.fasterxml.jackson.annotation

# Class ObjectIdGenerators.StringIdGenerator

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

All Implemented Interfaces:
  `Serializable`

Enclosing class:
  `ObjectIdGenerators`

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

## Field Summary

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

## Constructor Summary

Constructors
Constructor
Description
`StringIdGenerator()`

## Method Summary

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

## Field Details

### _scope

protected final Class<?> _scope

## Constructor Details

### StringIdGenerator

public StringIdGenerator()

## Method Details

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

### getScope

public final Class<?> getScope()

Specified by:
  `getScope` in class `ObjectIdGenerator<T>`