ObjectIdGenerator (Jackson-annotations 2.2.0 API)
Date: 2013-04-22

com.fasterxml.jackson.annotation

## Class ObjectIdGenerator<T>

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

- Type Parameters:
    `T` - Type of Object Identifiers produced.
  All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    ObjectIdGenerators.IntSequenceGenerator, ObjectIdGenerators.None, ObjectIdGenerators.PropertyGenerator, ObjectIdGenerators.UUIDGenerator

      public abstract class ObjectIdGenerator<T>
      extends Object
      implements Serializable

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `ObjectIdGenerator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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-2013 FasterXML. All Rights Reserved.