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:
    Serializable
  Direct Known Subclasses:
    AsArrayTypeDeserializer, AsWrapperTypeDeserializer

      public abstract class TypeDeserializerBase
      extends TypeDeserializer
      implements 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 cannot be resolved.
    `protected JsonDeserializer<Object>` | `_defaultImplDeserializer`
    `protected Map<String,JsonDeserializer<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 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, String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)`
    `protected` | `TypeDeserializerBase(TypeDeserializerBase src, BeanProperty property)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Object` | `_deserializeWithNativeTypeId(JsonParser jp, DeserializationContext ctxt)` Deprecated.
    `protected Object` | `_deserializeWithNativeTypeId(JsonParser p, DeserializationContext ctxt, 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<Object>` | `_findDefaultImplDeserializer(DeserializationContext ctxt)`
    `protected JsonDeserializer<Object>` | `_findDeserializer(DeserializationContext ctxt, String typeId)`
    `protected JavaType` | `_handleMissingTypeId(DeserializationContext ctxt, String extraDesc)`
    `protected JavaType` | `_handleUnknownTypeId(DeserializationContext ctxt, String typeId)` Helper method called when given type id cannot be resolved into concrete deserializer either directly (using given `TypeIdResolver`), or using default type.
    `JavaType` | `baseType()`
    `String` | `baseTypeName()`
    `abstract TypeDeserializer` | `forProperty(BeanProperty prop)` Method called to create contextual version, to be used for values of given property.
    `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 cannot be resolved)
    `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 JsonTypeInfo.As` | `getTypeInclusion()` Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.
    `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 cannot be resolved.

    - #### _typePropertyName

          protected final 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 Map<String,JsonDeserializer<Object>> _deserializers

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

    - #### _defaultImplDeserializer

          protected JsonDeserializer<Object> _defaultImplDeserializer

  - ### Constructor Detail

    - #### TypeDeserializerBase

          protected TypeDeserializerBase(JavaType baseType,
                                         TypeIdResolver idRes,
                                         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 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 String baseTypeName()

    - #### getPropertyName

          public final 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 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 cannot be resolved)
      Specified by:
        `getDefaultImpl` in class `TypeDeserializer`

    - #### baseType

          public JavaType baseType()

      Since:
        2.9

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### _findDeserializer

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

      Throws:
        `IOException`

    - #### _findDefaultImplDeserializer

          protected final JsonDeserializer<Object> _findDefaultImplDeserializer(DeserializationContext ctxt)
                                                                         throws IOException

      Throws:
        `IOException`

    - #### _deserializeWithNativeTypeId

          @Deprecated
          protected Object _deserializeWithNativeTypeId(JsonParser jp,
                                                                    DeserializationContext ctxt)
                                                             throws 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:
        `IOException`
      Since:
        2.3

    - #### _deserializeWithNativeTypeId

          protected Object _deserializeWithNativeTypeId(JsonParser p,
                                                        DeserializationContext ctxt,
                                                        Object typeId)
                                                 throws IOException

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

    - #### _handleUnknownTypeId

          protected JavaType _handleUnknownTypeId(DeserializationContext ctxt,
                                                  String typeId)
                                           throws IOException

      Helper method called when given type id cannot 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:
        `IOException`
      Since:
        2.8

    - #### _handleMissingTypeId

          protected JavaType _handleMissingTypeId(DeserializationContext ctxt,
                                                  String extraDesc)
                                           throws IOException

      Throws:
        `IOException`
      Since:
        2.9

Copyright © 2008–2019 FasterXML. All rights reserved.