Class GuavaCollectionDeserializer<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>
-
- com.fasterxml.jackson.datatype.guava.deser.GuavaCollectionDeserializer<T>
-
- All Implemented Interfaces:
com.fasterxml.jackson.databind.deser.ContextualDeserializer
,com.fasterxml.jackson.databind.deser.NullValueProvider
,com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable
,java.io.Serializable
- Direct Known Subclasses:
GuavaImmutableCollectionDeserializer
,GuavaMultisetDeserializer
public abstract class GuavaCollectionDeserializer<T> extends com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer
Base class for Guava-specific collection deserializers.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected com.fasterxml.jackson.databind.JsonDeserializer<?>
_valueDeserializer
Deserializer used for values contained in collection being deserialized; either assigned on constructor, or during resolve().protected com.fasterxml.jackson.databind.jsontype.TypeDeserializer
_valueTypeDeserializer
If value instances have polymorphic type information, this is the type deserializer that can deserialize required type informationprivate static long
serialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description protected
GuavaCollectionDeserializer(com.fasterxml.jackson.databind.JavaType selfType, com.fasterxml.jackson.databind.JsonDeserializer<?> deser, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeser, com.fasterxml.jackson.databind.deser.NullValueProvider nuller, java.lang.Boolean unwrapSingle)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract T
_createEmpty(com.fasterxml.jackson.databind.DeserializationContext ctxt)
protected abstract T
_createWithSingleElement(com.fasterxml.jackson.databind.DeserializationContext ctxt, java.lang.Object value)
protected abstract T
_deserializeContents(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)
protected T
_deserializeFromSingleValue(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)
Method used to support implicit coercion from a single non-array value into single-element collection.protected void
_tryToAddNull(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, java.util.Collection<?> set)
Some/many Guava containers do not allow addition ofnull
values, so isolate handling here.com.fasterxml.jackson.databind.JsonDeserializer<?>
createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property)
Method called to finalize setup of this deserializer, after deserializer itself has been registered.T
deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)
java.lang.Object
deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer)
Base implementation that does not assume specific type inclusion mechanism.com.fasterxml.jackson.databind.JsonDeserializer<java.lang.Object>
getContentDeserializer()
abstract com.fasterxml.jackson.databind.util.AccessPattern
getEmptyAccessPattern()
abstract java.lang.Object
getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt)
com.fasterxml.jackson.databind.type.LogicalType
logicalType()
abstract GuavaCollectionDeserializer<T>
withResolved(com.fasterxml.jackson.databind.JsonDeserializer<?> valueDeser, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeser, com.fasterxml.jackson.databind.deser.NullValueProvider nuller, java.lang.Boolean unwrapSingle)
Overridable fluent factory method used for creating contextual instances.-
Methods inherited from class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase
findBackReference, getContentType, getValueType, supportsUpdate, wrapAndThrow, wrapAndThrow
-
Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_byteOverflow, _checkBooleanToStringCoercion, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFloatToStringCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkIntToFloatCoercion, _checkIntToStringCoercion, _checkTextualNull, _checkToStringCoercion, _coerceBooleanFromInt, _coercedTypeDesc, _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, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueInstantiator, getValueType, handledType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer
-
Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer
deserialize, deserializeWithType, getAbsentValue, getDelegatee, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, unwrappingDeserializer
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_valueDeserializer
protected final com.fasterxml.jackson.databind.JsonDeserializer<?> _valueDeserializer
Deserializer used for values contained in collection being deserialized; either assigned on constructor, or during resolve().
-
_valueTypeDeserializer
protected final com.fasterxml.jackson.databind.jsontype.TypeDeserializer _valueTypeDeserializer
If value instances have polymorphic type information, this is the type deserializer that can deserialize required type information
-
-
Constructor Detail
-
GuavaCollectionDeserializer
protected GuavaCollectionDeserializer(com.fasterxml.jackson.databind.JavaType selfType, com.fasterxml.jackson.databind.JsonDeserializer<?> deser, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeser, com.fasterxml.jackson.databind.deser.NullValueProvider nuller, java.lang.Boolean unwrapSingle)
-
-
Method Detail
-
withResolved
public abstract GuavaCollectionDeserializer<T> withResolved(com.fasterxml.jackson.databind.JsonDeserializer<?> valueDeser, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeser, com.fasterxml.jackson.databind.deser.NullValueProvider nuller, java.lang.Boolean unwrapSingle)
Overridable fluent factory method used for creating contextual instances.
-
createContextual
public com.fasterxml.jackson.databind.JsonDeserializer<?> createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException
Method called to finalize setup of this deserializer, after deserializer itself has been registered. This is needed to handle recursive and transitive dependencies.- Specified by:
createContextual
in interfacecom.fasterxml.jackson.databind.deser.ContextualDeserializer
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
getContentDeserializer
public com.fasterxml.jackson.databind.JsonDeserializer<java.lang.Object> getContentDeserializer()
- Specified by:
getContentDeserializer
in classcom.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
-
logicalType
public com.fasterxml.jackson.databind.type.LogicalType logicalType()
- Overrides:
logicalType
in classcom.fasterxml.jackson.databind.JsonDeserializer<T>
-
deserializeWithType
public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer) throws java.io.IOException
Base implementation that does not assume specific type inclusion mechanism. Sub-classes are expected to override this method if they are to handle type information.- Overrides:
deserializeWithType
in classcom.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
- Throws:
java.io.IOException
-
deserialize
public T deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws java.io.IOException
- Specified by:
deserialize
in classcom.fasterxml.jackson.databind.JsonDeserializer<T>
- Throws:
java.io.IOException
-
getEmptyAccessPattern
public abstract com.fasterxml.jackson.databind.util.AccessPattern getEmptyAccessPattern()
- Overrides:
getEmptyAccessPattern
in classcom.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
-
getEmptyValue
public abstract java.lang.Object getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt) throws com.fasterxml.jackson.databind.JsonMappingException
- Overrides:
getEmptyValue
in classcom.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
_deserializeContents
protected abstract T _deserializeContents(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws java.io.IOException
- Throws:
java.io.IOException
-
_deserializeFromSingleValue
protected T _deserializeFromSingleValue(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws java.io.IOException
Method used to support implicit coercion from a single non-array value into single-element collection.- Throws:
java.io.IOException
- Since:
- 2.3
-
_createEmpty
protected abstract T _createEmpty(com.fasterxml.jackson.databind.DeserializationContext ctxt)
-
_createWithSingleElement
protected abstract T _createWithSingleElement(com.fasterxml.jackson.databind.DeserializationContext ctxt, java.lang.Object value)
-
_tryToAddNull
protected void _tryToAddNull(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, java.util.Collection<?> set) throws java.io.IOException
Some/many Guava containers do not allow addition ofnull
values, so isolate handling here.- Throws:
java.io.IOException
- Since:
- 2.17
-
-