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