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.DelegatingBeanProperty.Bogus, BeanProperty.StdEMPTY_FORMAT, EMPTY_INCLUDE| Modifier and Type | Method and Description |
|---|---|
static MergingSettableBeanProperty |
construct(SettableBeanProperty delegate,
AnnotatedMember accessor) |
void |
deserializeAndSet(JsonParser p,
DeserializationContext ctxt,
java.lang.Object instance)
Method called to deserialize appropriate value, given parser (and
context), and set it using appropriate mechanism.
|
java.lang.Object |
deserializeSetAndReturn(JsonParser p,
DeserializationContext ctxt,
java.lang.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(java.lang.Object instance,
java.lang.Object value)
Method called to assign given value to this property, on
specified Object.
|
java.lang.Object |
setAndReturn(java.lang.Object instance,
java.lang.Object value)
Method called to assign given value to this property, on
specified Object, and return whatever delegating accessor
returned (if anything)
|
assignIndex, fixAccess, getAnnotation, getCreatorIndex, getDelegate, getInjectableValueId, getManagedReferenceName, getMember, getObjectIdInfo, getPropertyIndex, getValueDeserializer, getValueTypeDeserializer, hasValueDeserializer, hasValueTypeDeserializer, hasViews, isInjectionOnly, visibleInView, withName, withNullProvider, withValueDeserializerdepositSchemaProperty, deserialize, deserializeWith, getContextAnnotation, getFullName, getName, getNullValueProvider, getType, getWrapperName, isIgnorable, markAsIgnorable, setManagedReferenceName, setObjectIdInfo, setViews, toString, withSimpleNamefindAliases, findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired, isVirtualpublic static MergingSettableBeanProperty construct(SettableBeanProperty delegate, AnnotatedMember accessor)
public void deserializeAndSet(JsonParser p, DeserializationContext ctxt, java.lang.Object instance) throws java.io.IOException
SettableBeanPropertydeserializeAndSet in class SettableBeanProperty.Delegatingjava.io.IOExceptionpublic java.lang.Object deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt, java.lang.Object instance) throws java.io.IOException
SettableBeanPropertySettableBeanProperty.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.Delegatingjava.io.IOExceptionpublic void set(java.lang.Object instance,
java.lang.Object value)
throws java.io.IOException
SettableBeanPropertyNote: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
set in class SettableBeanProperty.Delegatingjava.io.IOExceptionpublic java.lang.Object setAndReturn(java.lang.Object instance,
java.lang.Object value)
throws java.io.IOException
SettableBeanPropertyNote: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
setAndReturn in class SettableBeanProperty.Delegatingjava.io.IOExceptionCopyright © 2010 - 2023 Adobe. All Rights Reserved