AbstractTypeResolver (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map

## Class AbstractTypeResolver

- java.lang.Object
- - org.codehaus.jackson.map.AbstractTypeResolver

- Direct Known Subclasses:
    AbstractTypeMaterializer, SimpleAbstractTypeResolver

      public abstract class AbstractTypeResolver
      extends Object

  Defines interface for resolvers that can resolve abstract types into concrete ones; either by using static mappings, or possibly by materializing implementations dynamically.

  Note that this class was changed in 1.8, to separate two parts of operation (defaulting, which has higher precedence, and fallback, which has lowest precedence). Existing m

  Since:
    1.6

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractTypeResolver()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `JavaType` | `findTypeMapping(DeserializationConfig config, JavaType type)` Try to locate a subtype for given abstract type, to either resolve to a concrete type, or at least to a more-specific (and hopefully supported) abstract type, one which may have registered deserializers.
    `JavaType` | `resolveAbstractType(DeserializationConfig config, JavaType type)` Method called to try to resolve an abstract type into concrete type (usually for purposes of deserializing), when no concrete implementation was found.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractTypeResolver

          public AbstractTypeResolver()

  - ### Method Detail

    - #### findTypeMapping

          public JavaType findTypeMapping(DeserializationConfig config,
                                 JavaType type)

      Try to locate a subtype for given abstract type, to either resolve to a concrete type, or at least to a more-specific (and hopefully supported) abstract type, one which may have registered deserializers. Method is called before trying to locate registered deserializers (as well as standard abstract type defaulting that core Jackson does), so it is typically implemented to add custom mappings of common abstract types (like specify which concrete implementation to use for binding `List`s).

      Note that this method does not necessarily have to do full resolution of bindings; that is, it is legal to return type that could be further resolved: caller is expected to keep calling this method on registered resolvers, until a concrete type is located.

      Parameters:
        `config` - Configuration in use; should always be of type `DeserializationConfig`
      Since:
        1.8

    - #### resolveAbstractType

          public JavaType resolveAbstractType(DeserializationConfig config,
                                     JavaType type)

      Method called to try to resolve an abstract type into concrete type (usually for purposes of deserializing), when no concrete implementation was found. It will be called after checking all other possibilities, including defaulting.
      Parameters:
        `config` - Configuration in use; should always be of type `DeserializationConfig`
        `type` - Type for which materialization maybe needed
      Returns:
        Resolved concrete type (which should retain generic type parameters of input type, if any), if resolution succeeds; null if resolver does not know how to resolve type
      Since:
        1.6