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 JacksonTypeDeserializer
s.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 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<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 Description protected
TypeDeserializerBase(JavaType baseType, TypeIdResolver idRes, java.lang.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 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 p, DeserializationContext ctxt, java.lang.Object typeId)
Helper method called whenJsonParser
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
_handleMissingTypeId(DeserializationContext ctxt, java.lang.String extraDesc)
protected JavaType
_handleUnknownTypeId(DeserializationContext ctxt, java.lang.String typeId)
Helper method called when given type id cannot be resolved into concrete deserializer either directly (using givenTypeIdResolver
), or using default type.JavaType
baseType()
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 cannot 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.boolean
hasDefaultImpl()
java.lang.String
toString()
-
Methods inherited from class com.fasterxml.jackson.databind.jsontype.TypeDeserializer
deserializeIfNatural, deserializeIfNatural, deserializeTypedFromAny, deserializeTypedFromArray, deserializeTypedFromObject, deserializeTypedFromScalar
-
-
-
-
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 whenforProperty(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 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 (forCollection
orMap
valued properties).- Specified by:
forProperty
in classTypeDeserializer
-
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 classTypeDeserializer
-
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 classTypeDeserializer
-
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 classTypeDeserializer
-
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 cannot be resolved)- Specified by:
getDefaultImpl
in classTypeDeserializer
-
hasDefaultImpl
public boolean hasDefaultImpl()
- Overrides:
hasDefaultImpl
in classTypeDeserializer
-
baseType
public JavaType baseType()
- Since:
- 2.9
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.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 whenJsonParser
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 p, DeserializationContext ctxt, java.lang.Object typeId) throws java.io.IOException
Helper method called whenJsonParser
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) throws java.io.IOException
Helper method called when given type id cannot be resolved into concrete deserializer either directly (using givenTypeIdResolver
), or using default type. Default implementation simply throws aJsonMappingException
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
-
_handleMissingTypeId
protected JavaType _handleMissingTypeId(DeserializationContext ctxt, java.lang.String extraDesc) throws java.io.IOException
- Throws:
java.io.IOException
- Since:
- 2.9
-
-