All Implemented Interfaces:
ContextualDeserializer, NullValueProvider, ResolvableDeserializer, ValueInstantiator.Gettable, Serializable
Direct Known Subclasses:
BeanAsArrayBuilderDeserializer, BeanAsArrayDeserializer, BeanDeserializer, BuilderBasedDeserializer

public abstract class BeanDeserializerBase extends StdDeserializer<Object> implements ContextualDeserializer, ResolvableDeserializer, ValueInstantiator.Gettable, Serializable
Base class for BeanDeserializer.
See Also:
  • Field Details

    • TEMP_PROPERTY_NAME

      protected static final PropertyName TEMP_PROPERTY_NAME
    • _beanType

      protected final JavaType _beanType
      Declared type of the bean this deserializer handles.
    • _serializationShape

      protected final JsonFormat.Shape _serializationShape
      Requested shape from bean class annotations.
    • _valueInstantiator

      protected final ValueInstantiator _valueInstantiator
      Object that handles details of constructing initial bean value (to which bind data to), unless instance is passed (via updateValue())
    • _delegateDeserializer

      protected JsonDeserializer<Object> _delegateDeserializer
      Deserializer that is used iff delegate-based creator is to be used for deserializing from JSON Object.

      NOTE: cannot be final because we need to get it during resolve() method (and not contextualization).

    • _arrayDelegateDeserializer

      protected JsonDeserializer<Object> _arrayDelegateDeserializer
      Deserializer that is used iff array-delegate-based creator is to be used for deserializing from JSON Object.

      NOTE: cannot be final because we need to get it during resolve() method (and not contextualization).

    • _propertyBasedCreator

      protected PropertyBasedCreator _propertyBasedCreator
      If the bean needs to be instantiated using constructor or factory method that takes one or more named properties as argument(s), this creator is used for instantiation. This value gets resolved during general resolution.
    • _nonStandardCreation

      protected boolean _nonStandardCreation
      Flag that is set to mark cases where deserialization from Object value using otherwise "standard" property binding will need to use non-default creation method: namely, either "full" delegation (array-delegation does not apply), or properties-based Creator method is used.

      Note that flag is somewhat mis-named as it is not affected by scalar-delegating creators; it only has effect on Object Value binding.

    • _vanillaProcessing

      protected boolean _vanillaProcessing
      Flag that indicates that no "special features" whatsoever are enabled, so the simplest processing is possible.
    • _beanProperties

      protected final BeanPropertyMap _beanProperties
      Mapping of property names to properties, built when all properties to use have been successfully resolved.
    • _injectables

      protected final ValueInjector[] _injectables
      List of ValueInjectors, if any injectable values are expected by the bean; otherwise null. This includes injectors used for injecting values via setters and fields, but not ones passed through constructor parameters.
    • _anySetter

      protected SettableAnyProperty _anySetter
      Fallback setter used for handling any properties that are not mapped to regular setters. If setter is not null, it will be called once for each such property.
    • _ignorableProps

      protected final Set<String> _ignorableProps
      In addition to properties that are set, we will also keep track of recognized but ignorable properties: these will be skipped without errors or warnings.
    • _includableProps

      protected final Set<String> _includableProps
      Keep track of the the properties that needs to be specifically included.
    • _ignoreAllUnknown

      protected final boolean _ignoreAllUnknown
      Flag that can be set to ignore and skip unknown properties. If set, will not throw an exception for unknown properties.
    • _needViewProcesing

      protected final boolean _needViewProcesing
      Flag that indicates that some aspect of deserialization depends on active view used (if any)
    • _backRefs

      protected final Map<String,SettableBeanProperty> _backRefs
      We may also have one or more back reference fields (usually zero or one).
    • _subDeserializers

      protected transient HashMap<ClassKey,JsonDeserializer<Object>> _subDeserializers
      Lazily constructed map used to contain deserializers needed for polymorphic subtypes. Note that this is only needed for polymorphic types, that is, when the actual type is not statically known. For other types this remains null.
    • _unwrappedPropertyHandler

      protected UnwrappedPropertyHandler _unwrappedPropertyHandler
      If one of properties has "unwrapped" value, we need separate helper object
    • _externalTypeIdHandler

      protected ExternalTypeHandler _externalTypeIdHandler
      Handler that we need iff any of properties uses external type id.
    • _objectIdReader

      protected final ObjectIdReader _objectIdReader
      If an Object Id is to be used for value handled by this deserializer, this reader is used for handling.
  • Constructor Details

  • Method Details