com.fasterxml.jackson.databind.deser.std

## 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, 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 and 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 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 and Description
    --- | ---
    `protected` | `ContainerDeserializerBase(ContainerDeserializerBase<?> base)`
    `protected` | `ContainerDeserializerBase(ContainerDeserializerBase<?> base, NullValueProvider nuller, Boolean unwrapSingle)`
    `protected` | `ContainerDeserializerBase(JavaType selfType)`
    `protected` | `ContainerDeserializerBase(JavaType selfType, NullValueProvider nuller, Boolean unwrapSingle)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `SettableBeanProperty` | `findBackReference(String refName)` Method needed by `BeanDeserializerFactory` to properly link managed- and back-reference pairs.
    `abstract JsonDeserializer<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 to `JsonDeserializer.getEmptyValue(DeserializationContext)`, to check whether it needs to be called just once (static values), or each time empty value is needed.
    `Object` | `getEmptyValue(DeserializationContext ctxt)` Method called to determine value to be used for "empty" values (most commonly when deserializing from empty JSON Strings).
    `ValueInstantiator` | `getValueInstantiator()`
    `JavaType` | `getValueType()` Exact structured type this deserializer handles, if known.
    `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(Throwable t, Object ref, String key)` Helper method called by various Map(-like) deserializers.

    - ### Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

      `_byteOverflow, _coercedTypeDesc, _coerceEmptyString, _coerceIntegral, _coerceNullToken, _coerceTextualNull, _deserializeFromArray, _deserializeFromEmpty, _deserializeWrappedValue, _failDoubleToIntCoercion, _findNullProvider, _hasTextualNull, _intOverflow, _isEmptyOrTextualNull, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _neitherNull, _nonNullNumber, _parseBooleanFromInt, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseIntPrimitive, _parseIntPrimitive, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, deserializeWithType, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueType, handledType, handleMissingEndArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer, parseDouble`

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

      `deserialize, deserialize, deserializeWithType, 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`

- - ### 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 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,
                                              Boolean unwrapSingle)

    - #### ContainerDeserializerBase

          protected ContainerDeserializerBase(JavaType selfType)

    - #### ContainerDeserializerBase

          protected ContainerDeserializerBase(ContainerDeserializerBase<?> base)

      Since:
        2.9

    - #### ContainerDeserializerBase

          protected ContainerDeserializerBase(ContainerDeserializerBase<?> base,
                                              NullValueProvider nuller,
                                              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 class `StdDeserializer<T>`

    - #### supportsUpdate

          public 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 be `Boolean.FALSE` if update is not supported at all (immutable values); `Boolean.TRUE` if update should usually work (regular POJOs, for example), or `null` 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 if `Boolean.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 class `JsonDeserializer<T>`

    - #### findBackReference

          public SettableBeanProperty findBackReference(String refName)

      Description copied from class: `JsonDeserializer`
      Method needed by `BeanDeserializerFactory` to properly link managed- and back-reference pairs.
      Overrides:
        `findBackReference` in class `JsonDeserializer<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<Object> getContentDeserializer()

      Accesor for deserializer use for deserializing content values.

    - #### getValueInstantiator

          public ValueInstantiator getValueInstantiator()

      Specified by:
        `getValueInstantiator` in interface `ValueInstantiator.Gettable`
      Since:
        2.9

    - #### getEmptyAccessPattern

          public AccessPattern getEmptyAccessPattern()

      Description copied from class: `JsonDeserializer`
      This method may be called in conjunction with calls to `JsonDeserializer.getEmptyValue(DeserializationContext)`, to check whether it needs to be called just once (static values), or each time empty value is needed.
      Overrides:
        `getEmptyAccessPattern` in class `JsonDeserializer<T>`

    - #### getEmptyValue

          public 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 as `JsonDeserializer.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 class `JsonDeserializer<T>`
      Throws:
        `JsonMappingException`

    - #### wrapAndThrow

          protected <BOGUS> BOGUS wrapAndThrow(Throwable t,
                                               Object ref,
                                               String key)
                                        throws IOException

      Helper method called by various Map(-like) deserializers.
      Throws:
        `IOException`

Copyright © 2008–2019 FasterXML. All rights reserved.