TypeIdResolver
Date: 2016-12-04

com.fasterxml.jackson.databind.jsontype

## Interface TypeIdResolver

- All Known Implementing Classes:
    ClassNameIdResolver, MinimalClassNameIdResolver, TypeIdResolverBase, TypeNameIdResolver

      public interface TypeIdResolver

  Interface that defines standard API for converting types to type identifiers and vice versa. Used by type resolvers (`TypeSerializer`, `TypeDeserializer`) for converting between type and matching id; id is stored in JSON and needed for creating instances of proper subtypes when deserializing values.

  NOTE: it is strongly recommended that developers always extend abstract base class `TypeIdResolverBase` instead of directly implementing this interface; this helps prevent breakage in case new methds need to be added in this interface (something we try to avoid doing; but which may be necessary in some cases).

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getDescForKnownTypeIds()` Method called for error-reporting and diagnostics purposes.
    `com.fasterxml.jackson.annotation.JsonTypeInfo.Id` | `getMechanism()` Accessor for mechanism that this resolver uses for determining type id from type.
    `java.lang.String` | `idFromBaseType()` Method that can be called to figure out type id to use for instances of base type (declared type of property).
    `java.lang.String` | `idFromValue(java.lang.Object value)` Method called to serialize type of the type of given value as a String to include in serialized JSON content.
    `java.lang.String` | `idFromValueAndType(java.lang.Object value, java.lang.Class<?> suggestedType)` Alternative method used for determining type from combination of value and type, using suggested type (that serializer provides) and possibly value of that type.
    `void` | `init(JavaType baseType)` Method that will be called once before any type resolution calls; used to initialize instance with configuration.
    `JavaType` | `typeFromId(DatabindContext context, java.lang.String id)` Method called to resolve type from given type identifier.

- - ### Method Detail

    - #### init

          void init(JavaType baseType)

      Method that will be called once before any type resolution calls; used to initialize instance with configuration. This is necessary since instances may be created via reflection, without ability to call specific constructor to pass in configuration settings.
      Parameters:
        `baseType` - Base type for which this id resolver instance is used

    - #### idFromValue

          java.lang.String idFromValue(java.lang.Object value)

      Method called to serialize type of the type of given value as a String to include in serialized JSON content.

    - #### idFromValueAndType

          java.lang.String idFromValueAndType(java.lang.Object value,
                                            java.lang.Class<?> suggestedType)

      Alternative method used for determining type from combination of value and type, using suggested type (that serializer provides) and possibly value of that type. Most common implementation will use suggested type as is.

    - #### idFromBaseType

          java.lang.String idFromBaseType()

      Method that can be called to figure out type id to use for instances of base type (declared type of property). This is usually only used for fallback handling, for cases where real type information is not available for some reason.

    - #### typeFromId

          JavaType typeFromId(DatabindContext context,
                            java.lang.String id)
                              throws java.io.IOException

      Method called to resolve type from given type identifier.
      Throws:
        `java.io.IOException`
      Since:
        2.5 (throws clause added in 2.8)

    - #### getDescForKnownTypeIds

          java.lang.String getDescForKnownTypeIds()

      Method called for error-reporting and diagnostics purposes.
      Since:
        2.7 -- but since 2.5 has existed in `TypeIdResolverBase`

    - #### getMechanism

          com.fasterxml.jackson.annotation.JsonTypeInfo.Id getMechanism()

      Accessor for mechanism that this resolver uses for determining type id from type. Mostly informational; not required to be called or used.