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

All Methods Instance Methods Abstract Methods
`void` `bindItem(ObjectIdGenerator.IdKey id, 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(Object context)` Factory method called to create a new instance to use for deserialization: needed since resolvers may have state (a pool of objects).
`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,
                  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 Identifier
  `pojo` - The POJO associated to that Identifier

#### resolveId

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