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, 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:
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer

    com.fasterxml.jackson.databind.JsonDeserializer.None
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final com.fasterxml.jackson.databind.JsonDeserializer<?>
    Deserializer used for values contained in collection being deserialized; either assigned on constructor, or during resolve().
    protected final com.fasterxml.jackson.databind.jsontype.TypeDeserializer
    If value instances have polymorphic type information, this is the type deserializer that can deserialize required type information
    private static final long
     

    Fields inherited from class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase

    _containerType, _nullProvider, _skipNullValues, _unwrapSingle

    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
    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, Boolean unwrapSingle)
     
  • Method Summary

    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, 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, Collection<?> set)
    Some/many Guava containers do not allow addition of null 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.
    deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)
     
    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<Object>
     
    abstract com.fasterxml.jackson.databind.util.AccessPattern
     
    abstract Object
    getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt)
     
    com.fasterxml.jackson.databind.type.LogicalType
     
    withResolved(com.fasterxml.jackson.databind.JsonDeserializer<?> valueDeser, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeser, com.fasterxml.jackson.databind.deser.NullValueProvider nuller, 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

    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 Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • _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 Details

    • 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, Boolean unwrapSingle)
  • Method Details

    • 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, 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 interface com.fasterxml.jackson.databind.deser.ContextualDeserializer
      Throws:
      com.fasterxml.jackson.databind.JsonMappingException
    • getContentDeserializer

      public com.fasterxml.jackson.databind.JsonDeserializer<Object> getContentDeserializer()
      Specified by:
      getContentDeserializer in class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
    • logicalType

      public com.fasterxml.jackson.databind.type.LogicalType logicalType()
      Overrides:
      logicalType in class com.fasterxml.jackson.databind.JsonDeserializer<T>
    • deserializeWithType

      public Object deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer) throws 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 class com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
      Throws:
      IOException
    • deserialize

      public T deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException
      Specified by:
      deserialize in class com.fasterxml.jackson.databind.JsonDeserializer<T>
      Throws:
      IOException
    • getEmptyAccessPattern

      public abstract com.fasterxml.jackson.databind.util.AccessPattern getEmptyAccessPattern()
      Overrides:
      getEmptyAccessPattern in class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<T>
    • getEmptyValue

      public abstract Object getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt) throws com.fasterxml.jackson.databind.JsonMappingException
      Overrides:
      getEmptyValue in class com.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 IOException
      Throws:
      IOException
    • _deserializeFromSingleValue

      protected T _deserializeFromSingleValue(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException
      Method used to support implicit coercion from a single non-array value into single-element collection.
      Throws:
      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, Object value)
    • _tryToAddNull

      protected void _tryToAddNull(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, Collection<?> set) throws IOException
      Some/many Guava containers do not allow addition of null values, so isolate handling here.
      Throws:
      IOException
      Since:
      2.17