com.fasterxml.jackson.annotation
Class ObjectIdGenerator<T>

java.lang.Object
  extended by com.fasterxml.jackson.annotation.ObjectIdGenerator<T>
Type Parameters:
T - Type of Object Identifiers produced.
Direct Known Subclasses:
ObjectIdGenerators.IntSequenceGenerator, ObjectIdGenerators.None, ObjectIdGenerators.PropertyGenerator, ObjectIdGenerators.UUIDGenerator

public abstract class ObjectIdGenerator<T>
extends Object

Definition of API used for constructing Object Identifiers (as annotated using JsonIdentityInfo). Also defines factory methods used for creating instances for serialization, deserialization.


Nested Class Summary
static class ObjectIdGenerator.IdKey
          Simple key class that can be used as a key for ObjectId-to-POJO mappings, when multiple ObjectId types and scopes are used.
 
Constructor Summary
ObjectIdGenerator()
           
 
Method Summary
abstract  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 newForSerialization(java.lang.Object)).
abstract  ObjectIdGenerator<T> forScope(Class<?> scope)
          Factory method to create a blueprint instance for specified scope.
abstract  T generateId(Object forPojo)
          Method used for generating a new Object Identifier to serialize for given POJO.
abstract  Class<?> getScope()
           
abstract  ObjectIdGenerator.IdKey key(Object key)
          Method for constructing key to use for ObjectId-to-POJO maps.
abstract  ObjectIdGenerator<T> 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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectIdGenerator

public ObjectIdGenerator()
Method Detail

getScope

public abstract Class<?> getScope()

canUseFor

public abstract 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 newForSerialization(java.lang.Object)).

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

forScope

public abstract ObjectIdGenerator<T> forScope(Class<?> scope)
Factory method to create a blueprint instance for specified scope. Generators that do not use scope may return 'this'.


newForSerialization

public abstract ObjectIdGenerator<T> 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).

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.

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.

key

public abstract ObjectIdGenerator.IdKey key(Object key)
Method for constructing key to use for ObjectId-to-POJO maps.


generateId

public abstract T generateId(Object forPojo)
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.


Copyright © 2012 FasterXML. All Rights Reserved.