ObjectIdResolver
Date: 2016-12-03

com.fasterxml.jackson.annotation

## Interface ObjectIdResolver

- All Known Implementing Classes:
    SimpleObjectIdResolver

      public interface ObjectIdResolver

  Definition of API used for resolving actual Java object from Object Identifiers (as annotated using `JsonIdentityInfo`).
  Since:
    2.4

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bindItem(ObjectIdGenerator.IdKey id, java.lang.Object pojo)` Method called when a POJO is deserialized and has an Object Identifier.
    `boolean` | `canUseFor(ObjectIdResolver resolverType)` Method called to check whether this resolver instance can be used for Object Ids of specific resolver type; determination is based by passing a configured "blueprint" (prototype) instance; from which the actual instances are created (using `newForDeserialization(java.lang.Object)`).
    `ObjectIdResolver` | `newForDeserialization(java.lang.Object context)` Factory method called to create a new instance to use for deserialization: needed since resolvers may have state (a pool of objects).
    `java.lang.Object` | `resolveId(ObjectIdGenerator.IdKey id)` Method called when deserialization encounters the given Object Identifier and requires the POJO associated with it.

- - ### Method Detail

    - #### bindItem

          void bindItem(ObjectIdGenerator.IdKey id,
                      java.lang.Object pojo)

      Method called when a POJO is deserialized and has an Object Identifier. Method exists so that implementation can keep track of existing object in JSON stream that could be useful for further resolution.
      Parameters:
        `id` - The Object Identifer
        `pojo` - The POJO associated to that Identifier

    - #### resolveId

          java.lang.Object resolveId(ObjectIdGenerator.IdKey id)

      Method called when deserialization encounters the given Object Identifier and requires the POJO associated with it.
      Parameters:
        `id` - The Object Identifier
      Returns:
        The POJO, or null if unable to resolve.

    - #### newForDeserialization

          ObjectIdResolver newForDeserialization(java.lang.Object context)

      Factory method called to create a new instance to use for deserialization: needed since resolvers may have state (a pool of objects).

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

      Parameters:
        `context` - Deserialization context object used (of type `com.fasterxml.jackson.databind.DeserializationContext` ; may be needed by more complex resolvers to access contextual information such as configuration.

    - #### canUseFor

          boolean canUseFor(ObjectIdResolver resolverType)

      Method called to check whether this resolver instance can be used for Object Ids of specific resolver type; determination is based by passing a configured "blueprint" (prototype) instance; from which the actual instances are created (using `newForDeserialization(java.lang.Object)`).
      Returns:
        True if this instance can be used as-is; false if not