Class MergingSettableBeanProperty
- java.lang.Object
-
- com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
-
- com.fasterxml.jackson.databind.deser.SettableBeanProperty
-
- com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating
-
- com.fasterxml.jackson.databind.deser.impl.MergingSettableBeanProperty
-
- All Implemented Interfaces:
BeanProperty
,Named
,java.io.Serializable
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 (usingJsonDeserializer.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.- Since:
- 2.9
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.deser.SettableBeanProperty
SettableBeanProperty.Delegating
-
Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.BeanProperty
BeanProperty.Bogus, BeanProperty.Std
-
-
Field Summary
-
Fields inherited from interface com.fasterxml.jackson.databind.BeanProperty
EMPTY_FORMAT, EMPTY_INCLUDE
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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 toSettableBeanProperty.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)-
Methods inherited from class com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating
assignIndex, fixAccess, getAnnotation, getCreatorIndex, getDelegate, getInjectableValueId, getManagedReferenceName, getMember, getObjectIdInfo, getPropertyIndex, getValueDeserializer, getValueTypeDeserializer, hasValueDeserializer, hasValueTypeDeserializer, hasViews, isInjectionOnly, visibleInView, withName, withNullProvider, withValueDeserializer
-
Methods inherited from class com.fasterxml.jackson.databind.deser.SettableBeanProperty
depositSchemaProperty, deserialize, deserializeWith, getContextAnnotation, getFullName, getName, getNullValueProvider, getType, getWrapperName, isIgnorable, markAsIgnorable, setManagedReferenceName, setObjectIdInfo, setViews, toString, withSimpleName
-
Methods inherited from class com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
findAliases, findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired, isVirtual
-
-
-
-
Method Detail
-
construct
public static MergingSettableBeanProperty construct(SettableBeanProperty delegate, AnnotatedMember accessor)
-
deserializeAndSet
public void deserializeAndSet(JsonParser p, DeserializationContext ctxt, java.lang.Object instance) throws java.io.IOException
Description copied from class:SettableBeanProperty
Method called to deserialize appropriate value, given parser (and context), and set it using appropriate mechanism. Pre-condition is that passed parser must point to the first token that should be consumed to produce the value (the only value for scalars, multiple for Objects and Arrays).- Overrides:
deserializeAndSet
in classSettableBeanProperty.Delegating
- Throws:
java.io.IOException
-
deserializeSetAndReturn
public java.lang.Object deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt, java.lang.Object instance) throws java.io.IOException
Description copied from class:SettableBeanProperty
Alternative toSettableBeanProperty.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.- Overrides:
deserializeSetAndReturn
in classSettableBeanProperty.Delegating
- Throws:
java.io.IOException
-
set
public void set(java.lang.Object instance, java.lang.Object value) throws java.io.IOException
Description copied from class:SettableBeanProperty
Method called to assign given value to this property, on specified Object.Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
- Overrides:
set
in classSettableBeanProperty.Delegating
- Throws:
java.io.IOException
-
setAndReturn
public java.lang.Object setAndReturn(java.lang.Object instance, java.lang.Object value) throws java.io.IOException
Description copied from class:SettableBeanProperty
Method called to assign given value to this property, on specified Object, and return whatever delegating accessor returned (if anything)Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
- Overrides:
setAndReturn
in classSettableBeanProperty.Delegating
- Throws:
java.io.IOException
-
-