TypeDeserializerBase
Date: 2016-12-04

com.fasterxml.jackson.databind.jsontype.impl

## Class TypeDeserializerBase

- java.lang.Object
- - com.fasterxml.jackson.databind.jsontype.TypeDeserializer
  - - com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    AsArrayTypeDeserializer, AsWrapperTypeDeserializer

      public abstract class TypeDeserializerBase
      extends TypeDeserializer
      implements java.io.Serializable

  Base class for all standard Jackson `TypeDeserializer`s.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JavaType` | `_baseType`
    `protected JavaType` | `_defaultImpl` Type to use as the default implementation, if type id is missing or can not be resolved.
    `protected JsonDeserializer<java.lang.Object>` | `_defaultImplDeserializer`
    `protected java.util.Map<java.lang.String,JsonDeserializer<java.lang.Object>>` | `_deserializers` For efficient operation we will lazily build mappings from type ids to actual deserializers, once needed.
    `protected TypeIdResolver` | `_idResolver`
    `protected BeanProperty` | `_property` Property that contains value for which type information is included; null if value is a root value.
    `protected boolean` | `_typeIdVisible`
    `protected java.lang.String` | `_typePropertyName` Name of type property used; needed for non-property versions too, in cases where type id is to be exposed as part of JSON.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `TypeDeserializerBase(JavaType baseType, TypeIdResolver idRes, java.lang.String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)`
    `protected` | `TypeDeserializerBase(TypeDeserializerBase src, BeanProperty property)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.lang.Object` | `_deserializeWithNativeTypeId(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)` Deprecated.
    `protected java.lang.Object` | `_deserializeWithNativeTypeId(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, java.lang.Object typeId)` Helper method called when `JsonParser` indicates that it can use so-called native type ids, and such type id has been found.
    `protected JsonDeserializer<java.lang.Object>` | `_findDefaultImplDeserializer(DeserializationContext ctxt)`
    `protected JsonDeserializer<java.lang.Object>` | `_findDeserializer(DeserializationContext ctxt, java.lang.String typeId)`
    `protected JavaType` | `_handleUnknownTypeId(DeserializationContext ctxt, java.lang.String typeId, TypeIdResolver idResolver, JavaType baseType)` Helper method called when given type id can not be resolved into concrete deserializer either directly (using given `TypeIdResolver`), or using default type.
    `java.lang.String` | `baseTypeName()`
    `abstract TypeDeserializer` | `forProperty(BeanProperty prop)` Method called to create contextual version, to be used for values of given property.
    `java.lang.Class<?>` | `getDefaultImpl()` Accessor for "default implementation" type; optionally defined class to use in cases where type id is not accessible for some reason (either missing, or can not be resolved)
    `java.lang.String` | `getPropertyName()` Name of property that contains type information, if property-based inclusion is used.
    `TypeIdResolver` | `getTypeIdResolver()` Accessor for object that handles conversions between types and matching type ids.
    `abstract com.fasterxml.jackson.annotation.JsonTypeInfo.As` | `getTypeInclusion()` Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class com.fasterxml.jackson.databind.jsontype.TypeDeserializer

      `deserializeIfNatural, deserializeIfNatural, deserializeTypedFromAny, deserializeTypedFromArray, deserializeTypedFromObject, deserializeTypedFromScalar`

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

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

- - ### Field Detail

    - #### _idResolver

          protected final TypeIdResolver _idResolver

    - #### _baseType

          protected final JavaType _baseType

    - #### _property

          protected final BeanProperty _property

      Property that contains value for which type information is included; null if value is a root value. Note that this value is not assigned during construction but only when `forProperty(com.fasterxml.jackson.databind.BeanProperty)` is called to create a copy.

    - #### _defaultImpl

          protected final JavaType _defaultImpl

      Type to use as the default implementation, if type id is missing or can not be resolved.

    - #### _typePropertyName

          protected final java.lang.String _typePropertyName

      Name of type property used; needed for non-property versions too, in cases where type id is to be exposed as part of JSON.

    - #### _typeIdVisible

          protected final boolean _typeIdVisible

    - #### _deserializers

          protected final java.util.Map<java.lang.String,JsonDeserializer<java.lang.Object>> _deserializers

      For efficient operation we will lazily build mappings from type ids to actual deserializers, once needed.

    - #### _defaultImplDeserializer

          protected JsonDeserializer<java.lang.Object> _defaultImplDeserializer

  - ### Constructor Detail

    - #### TypeDeserializerBase

          protected TypeDeserializerBase(JavaType baseType,
                              TypeIdResolver idRes,
                              java.lang.String typePropertyName,
                              boolean typeIdVisible,
                              JavaType defaultImpl)

      Since:
        2.8

    - #### TypeDeserializerBase

          protected TypeDeserializerBase(TypeDeserializerBase src,
                              BeanProperty property)

  - ### Method Detail

    - #### forProperty

          public abstract TypeDeserializer forProperty(BeanProperty prop)

      Description copied from class: `TypeDeserializer`
      Method called to create contextual version, to be used for values of given property. This may be the type itself (as is the case for bean properties), or values contained (for `Collection` or `Map` valued properties).
      Specified by:
        `forProperty` in class `TypeDeserializer`

    - #### getTypeInclusion

          public abstract com.fasterxml.jackson.annotation.JsonTypeInfo.As getTypeInclusion()

      Description copied from class: `TypeDeserializer`
      Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.
      Specified by:
        `getTypeInclusion` in class `TypeDeserializer`

    - #### baseTypeName

          public java.lang.String baseTypeName()

    - #### getPropertyName

          public final java.lang.String getPropertyName()

      Description copied from class: `TypeDeserializer`
      Name of property that contains type information, if property-based inclusion is used.
      Specified by:
        `getPropertyName` in class `TypeDeserializer`

    - #### getTypeIdResolver

          public TypeIdResolver getTypeIdResolver()

      Description copied from class: `TypeDeserializer`
      Accessor for object that handles conversions between types and matching type ids.
      Specified by:
        `getTypeIdResolver` in class `TypeDeserializer`

    - #### getDefaultImpl

          public java.lang.Class<?> getDefaultImpl()

      Description copied from class: `TypeDeserializer`
      Accessor for "default implementation" type; optionally defined class to use in cases where type id is not accessible for some reason (either missing, or can not be resolved)
      Specified by:
        `getDefaultImpl` in class `TypeDeserializer`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### _findDeserializer

          protected final JsonDeserializer<java.lang.Object> _findDeserializer(DeserializationContext ctxt,
                                                             java.lang.String typeId)
                                                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _findDefaultImplDeserializer

          protected final JsonDeserializer<java.lang.Object> _findDefaultImplDeserializer(DeserializationContext ctxt)
                                                                                   throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _deserializeWithNativeTypeId

          @Deprecated
          protected java.lang.Object _deserializeWithNativeTypeId(com.fasterxml.jackson.core.JsonParser jp,
                                                                 DeserializationContext ctxt)
                                                           throws java.io.IOException

      Deprecated.
      Helper method called when `JsonParser` indicates that it can use so-called native type ids. Assumption from there is that only native type ids are to be used.
      Throws:
        `java.io.IOException`
      Since:
        2.3

    - #### _deserializeWithNativeTypeId

          protected java.lang.Object _deserializeWithNativeTypeId(com.fasterxml.jackson.core.JsonParser jp,
                                                      DeserializationContext ctxt,
                                                      java.lang.Object typeId)
                                                           throws java.io.IOException

      Helper method called when `JsonParser` indicates that it can use so-called native type ids, and such type id has been found.
      Throws:
        `java.io.IOException`
      Since:
        2.4

    - #### _handleUnknownTypeId

          protected JavaType _handleUnknownTypeId(DeserializationContext ctxt,
                                      java.lang.String typeId,
                                      TypeIdResolver idResolver,
                                      JavaType baseType)
                                           throws java.io.IOException

      Helper method called when given type id can not be resolved into concrete deserializer either directly (using given `TypeIdResolver`), or using default type. Default implementation simply throws a `JsonMappingException` to indicate the problem; sub-classes may choose
      Returns:
        If it is possible to resolve type id into a `JsonDeserializer` should return that deserializer; otherwise throw an exception to indicate the problem.
      Throws:
        `java.io.IOException`
      Since:
        2.8