Class 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
    • 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 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 information
      private static long serialVersionUID  
      • 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, 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 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.
      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
      • 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

      • _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 interface com.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 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 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 class com.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 class com.fasterxml.jackson.databind.JsonDeserializer<T>
        Throws:
        java.io.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 java.lang.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 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 of null values, so isolate handling here.
        Throws:
        java.io.IOException
        Since:
        2.17