Class ContainerDeserializerBase<T>
- java.lang.Object
-
- com.fasterxml.jackson.databind.JsonDeserializer<T>
-
- com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
-
- com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
-
- All Implemented Interfaces:
NullValueProvider
,ValueInstantiator.Gettable
,java.io.Serializable
- Direct Known Subclasses:
CollectionDeserializer
,EnumMapDeserializer
,MapDeserializer
,MapEntryDeserializer
,ObjectArrayDeserializer
,StringCollectionDeserializer
public abstract class ContainerDeserializerBase<T> extends StdDeserializer<T> implements ValueInstantiator.Gettable
Intermediate base deserializer class that adds more shared accessor so that other classes can access information about contained (value) types- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer
JsonDeserializer.None
-
-
Field Summary
Fields Modifier and Type Field Description protected JavaType
_containerType
protected NullValueProvider
_nullProvider
Handler we need for dealing with nulls.protected boolean
_skipNullValues
Marker flag set if the_nullProvider
indicates that all null content values should be skipped (instead of being possibly converted).protected java.lang.Boolean
_unwrapSingle
Specific override for this instance (from proper, or global per-type overrides) to indicate whether single value may be taken to mean an unwrapped one-element array or not.-
Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_valueClass, _valueType, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ContainerDeserializerBase(ContainerDeserializerBase<?> base)
protected
ContainerDeserializerBase(ContainerDeserializerBase<?> base, NullValueProvider nuller, java.lang.Boolean unwrapSingle)
protected
ContainerDeserializerBase(JavaType selfType)
protected
ContainerDeserializerBase(JavaType selfType, NullValueProvider nuller, java.lang.Boolean unwrapSingle)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description SettableBeanProperty
findBackReference(java.lang.String refName)
Method needed byBeanDeserializerFactory
to properly link managed- and back-reference pairs.abstract JsonDeserializer<java.lang.Object>
getContentDeserializer()
Accesor for deserializer use for deserializing content values.JavaType
getContentType()
Accessor for declared type of contained value elements; either exact type, or one of its supertypes.AccessPattern
getEmptyAccessPattern()
This method may be called in conjunction with calls toJsonDeserializer.getEmptyValue(DeserializationContext)
, to check whether it needs to be called just once (static values), or each time empty value is needed.java.lang.Object
getEmptyValue(DeserializationContext ctxt)
Method called to determine value to be used for "empty" values (most commonly when deserializing from empty JSON Strings).JavaType
getValueType()
Exact structured type this deserializer handles, if known.java.lang.Boolean
supportsUpdate(DeserializationConfig config)
Introspection method that may be called to see whether deserializer supports update of an existing value (aka "merging") or not.protected <BOGUS> BOGUS
wrapAndThrow(DeserializationContext ctxt, java.lang.Throwable t, java.lang.Object ref, java.lang.String key)
Helper method called by various Map(-like) deserializers when encountering a processing problem (whether from underlying parser, i/o, or something else).protected <BOGUS> BOGUS
wrapAndThrow(java.lang.Throwable t, java.lang.Object ref, java.lang.String key)
Deprecated.Since 2.12.2 (since it does not get context for accessing config)-
Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_byteOverflow, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkTextualNull, _coerceBooleanFromInt, _coercedTypeDesc, _coerceEmptyString, _coerceIntegral, _coerceNullToken, _coerceTextualNull, _deserializeFromArray, _deserializeFromEmpty, _deserializeFromEmptyString, _deserializeFromString, _deserializeWrappedValue, _failDoubleToIntCoercion, _findCoercionFromBlankString, _findCoercionFromEmptyArray, _findCoercionFromEmptyString, _findNullProvider, _hasTextualNull, _intOverflow, _isBlank, _isEmptyOrTextualNull, _isFalse, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _isTrue, _neitherNull, _nonNullNumber, _parseBoolean, _parseBooleanFromInt, _parseBooleanPrimitive, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, deserializeWithType, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueInstantiator, getValueType, handledType, handleMissingEndArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer
-
Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer
deserialize, deserialize, deserializeWithType, getDelegatee, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getNullValue, getObjectIdReader, isCachable, logicalType, replaceDelegatee, unwrappingDeserializer
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable
getValueInstantiator
-
-
-
-
Field Detail
-
_containerType
protected final JavaType _containerType
-
_nullProvider
protected final NullValueProvider _nullProvider
Handler we need for dealing with nulls.- Since:
- 2.9
-
_skipNullValues
protected final boolean _skipNullValues
Marker flag set if the_nullProvider
indicates that all null content values should be skipped (instead of being possibly converted).- Since:
- 2.9
-
_unwrapSingle
protected final java.lang.Boolean _unwrapSingle
Specific override for this instance (from proper, or global per-type overrides) to indicate whether single value may be taken to mean an unwrapped one-element array or not. If null, left to global defaults.- Since:
- 2.9 (demoted from sub-classes where added in 2.7)
-
-
Constructor Detail
-
ContainerDeserializerBase
protected ContainerDeserializerBase(JavaType selfType, NullValueProvider nuller, java.lang.Boolean unwrapSingle)
-
ContainerDeserializerBase
protected ContainerDeserializerBase(JavaType selfType)
-
ContainerDeserializerBase
protected ContainerDeserializerBase(ContainerDeserializerBase<?> base)
- Since:
- 2.9
-
ContainerDeserializerBase
protected ContainerDeserializerBase(ContainerDeserializerBase<?> base, NullValueProvider nuller, java.lang.Boolean unwrapSingle)
- Since:
- 2.9
-
-
Method Detail
-
getValueType
public JavaType getValueType()
Description copied from class:StdDeserializer
Exact structured type this deserializer handles, if known.- Overrides:
getValueType
in classStdDeserializer<T>
-
supportsUpdate
public java.lang.Boolean supportsUpdate(DeserializationConfig config)
Description copied from class:JsonDeserializer
Introspection method that may be called to see whether deserializer supports update of an existing value (aka "merging") or not. Return value should either beBoolean.FALSE
if update is not supported at all (immutable values);Boolean.TRUE
if update should usually work (regular POJOs, for example), ornull
if this is either not known, or may sometimes work.Information gathered is typically used to either prevent merging update for property (either by skipping, if based on global defaults; or by exception during deserialization construction if explicit attempt made) if
Boolean.FALSE
returned, or inclusion ifBoolean.TRUE
is specified. If "unknown" case (null
returned) behavior is to exclude property if global defaults used; or to allow if explicit per-type or property merging is defined.Default implementation returns
null
to allow explicit per-type or per-property attempts.- Overrides:
supportsUpdate
in classJsonDeserializer<T>
-
findBackReference
public SettableBeanProperty findBackReference(java.lang.String refName)
Description copied from class:JsonDeserializer
Method needed byBeanDeserializerFactory
to properly link managed- and back-reference pairs.- Overrides:
findBackReference
in classJsonDeserializer<T>
-
getContentType
public JavaType getContentType()
Accessor for declared type of contained value elements; either exact type, or one of its supertypes.
-
getContentDeserializer
public abstract JsonDeserializer<java.lang.Object> getContentDeserializer()
Accesor for deserializer use for deserializing content values.
-
getEmptyAccessPattern
public AccessPattern getEmptyAccessPattern()
Description copied from class:JsonDeserializer
This method may be called in conjunction with calls toJsonDeserializer.getEmptyValue(DeserializationContext)
, to check whether it needs to be called just once (static values), or each time empty value is needed.- Overrides:
getEmptyAccessPattern
in classJsonDeserializer<T>
-
getEmptyValue
public java.lang.Object getEmptyValue(DeserializationContext ctxt) throws JsonMappingException
Description copied from class:JsonDeserializer
Method called to determine value to be used for "empty" values (most commonly when deserializing from empty JSON Strings). Usually this is same asJsonDeserializer.getNullValue(com.fasterxml.jackson.databind.DeserializationContext)
(which in turn is usually simply Java null), but it can be overridden for specific types. Or, if type should never be converted from empty String, method can also throw an exception.This method may be called once, or multiple times, depending on what
JsonDeserializer.getEmptyAccessPattern()
returns.Default implementation simply calls
JsonDeserializer.getNullValue(com.fasterxml.jackson.databind.DeserializationContext)
and returns value.- Overrides:
getEmptyValue
in classJsonDeserializer<T>
- Throws:
JsonMappingException
-
wrapAndThrow
@Deprecated protected <BOGUS> BOGUS wrapAndThrow(java.lang.Throwable t, java.lang.Object ref, java.lang.String key) throws java.io.IOException
Deprecated.Since 2.12.2 (since it does not get context for accessing config)- Throws:
java.io.IOException
-
wrapAndThrow
protected <BOGUS> BOGUS wrapAndThrow(DeserializationContext ctxt, java.lang.Throwable t, java.lang.Object ref, java.lang.String key) throws java.io.IOException
Helper method called by various Map(-like) deserializers when encountering a processing problem (whether from underlying parser, i/o, or something else).- Throws:
java.io.IOException
- Since:
- 2.12.2
-
-