public class MergingSettableBeanProperty extends SettableBeanProperty.Delegating
SettableBeanProperty
implementation that will try to access value of
the property first, and if non-null value found, pass that for update
(using JsonDeserializer.deserialize(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, Object)
)
instead of constructing a new value. This is necessary to support "merging" properties.
Note that there are many similarities to SetterlessProperty
, which predates
this variant; and that one is even used in cases where there is no mutator
available.
SettableBeanProperty.Delegating
BeanProperty.Bogus, BeanProperty.Std
Modifier and Type | Field and Description |
---|---|
protected AnnotatedMember |
_accessor
Member (field, method) used for accessing existing value.
|
delegate
_contextAnnotations, _managedReferenceName, _nullProvider, _objectIdInfo, _propertyIndex, _propName, _type, _valueDeserializer, _valueTypeDeserializer, _viewMatcher, _wrapperName, MISSING_VALUE_DESERIALIZER
_aliases, _metadata
EMPTY_FORMAT, EMPTY_INCLUDE
Modifier | Constructor and Description |
---|---|
protected |
MergingSettableBeanProperty(MergingSettableBeanProperty src,
SettableBeanProperty delegate) |
protected |
MergingSettableBeanProperty(SettableBeanProperty delegate,
AnnotatedMember accessor) |
Modifier and Type | Method and Description |
---|---|
static MergingSettableBeanProperty |
construct(SettableBeanProperty delegate,
AnnotatedMember accessor) |
void |
deserializeAndSet(JsonParser p,
DeserializationContext ctxt,
Object instance)
Method called to deserialize appropriate value, given parser (and
context), and set it using appropriate mechanism.
|
Object |
deserializeSetAndReturn(JsonParser p,
DeserializationContext ctxt,
Object instance)
Alternative to
SettableBeanProperty.deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object) that returns
either return value of setter method called (if one is),
or null to indicate that no return value is available. |
void |
set(Object instance,
Object value)
Method called to assign given value to this property, on
specified Object.
|
Object |
setAndReturn(Object instance,
Object value)
Method called to assign given value to this property, on
specified Object, and return whatever delegating accessor
returned (if anything)
|
protected SettableBeanProperty |
withDelegate(SettableBeanProperty d)
Method sub-classes must implement, to construct a new instance
with given delegate.
|
_with, assignIndex, fixAccess, getAnnotation, getCreatorIndex, getDeclaringClass, getDelegate, getInjectableValueId, getManagedReferenceName, getMember, getObjectIdInfo, getPropertyIndex, getValueDeserializer, getValueTypeDeserializer, hasValueDeserializer, hasValueTypeDeserializer, hasViews, isInjectionOnly, visibleInView, withName, withNullProvider, withValueDeserializer
_throwAsIOE, _throwAsIOE, _throwAsIOE, _throwAsIOE, depositSchemaProperty, deserialize, deserializeWith, getContextAnnotation, getFullName, getName, getNullValueProvider, getType, getWrapperName, isIgnorable, markAsIgnorable, setManagedReferenceName, setObjectIdInfo, setViews, toString, withSimpleName
findAliases, findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired, isVirtual
protected final AnnotatedMember _accessor
protected MergingSettableBeanProperty(SettableBeanProperty delegate, AnnotatedMember accessor)
protected MergingSettableBeanProperty(MergingSettableBeanProperty src, SettableBeanProperty delegate)
public static MergingSettableBeanProperty construct(SettableBeanProperty delegate, AnnotatedMember accessor)
protected SettableBeanProperty withDelegate(SettableBeanProperty d)
SettableBeanProperty.Delegating
withDelegate
in class SettableBeanProperty.Delegating
public void deserializeAndSet(JsonParser p, DeserializationContext ctxt, Object instance) throws IOException
SettableBeanProperty
deserializeAndSet
in class SettableBeanProperty.Delegating
IOException
public Object deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt, Object instance) throws IOException
SettableBeanProperty
SettableBeanProperty.deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object)
that returns
either return value of setter method called (if one is),
or null to indicate that no return value is available.
Mostly used to support Builder style deserialization.deserializeSetAndReturn
in class SettableBeanProperty.Delegating
IOException
public void set(Object instance, Object value) throws IOException
SettableBeanProperty
Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
set
in class SettableBeanProperty.Delegating
IOException
public Object setAndReturn(Object instance, Object value) throws IOException
SettableBeanProperty
Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
setAndReturn
in class SettableBeanProperty.Delegating
IOException
Copyright © 2008–2020 FasterXML. All rights reserved.