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