Top Description Fields Constructors Methods
com.fasterxml.jackson.module.afterburner.deser

pack-priv abstract Class OptimizedSettableBeanProperty<T extends OptimizedSettableBeanProperty<T>>

extends Delegating
Class Inheritance
Known Direct Subclasses
com.fasterxml.jackson.module.afterburner.deser.SettableBooleanFieldProperty, com.fasterxml.jackson.module.afterburner.deser.SettableBooleanMethodProperty, com.fasterxml.jackson.module.afterburner.deser.SettableIntFieldProperty, com.fasterxml.jackson.module.afterburner.deser.SettableIntMethodProperty, com.fasterxml.jackson.module.afterburner.deser.SettableLongFieldProperty, com.fasterxml.jackson.module.afterburner.deser.SettableLongMethodProperty, com.fasterxml.jackson.module.afterburner.deser.SettableObjectFieldProperty, com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty, com.fasterxml.jackson.module.afterburner.deser.SettableStringFieldProperty, com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty
Imports
java.io.IOException, java.util.logging.Level, .Logger, com.fasterxml.jackson.core.*, com.fasterxml.jackson.databind.*, com.fasterxml.jackson.databind.deser.*, com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider, com.fasterxml.jackson.databind.util.ClassUtil

Base class for concrete type-specific SettableBeanProperty implementations.

Field Summary

Modifier and TypeField and Description
protected final int
protected BeanPropertyMutator
protected final boolean
private volatile boolean
broken

Marker that we set if mutator turns out to be broken in a systematic way that we can handle by redirecting it back to standard one.

private static final long
Inherited from com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating:
delegate

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
protected boolean
_isDefaultDeserializer(JsonDeserializer<?> deser)

Helper method used to check whether given deserializer is the default deserializer implementation: this is necessary to avoid overriding custom deserializers.

protected void
_reportProblem(Object bean, Object value, Throwable e)

Helper method called when an exception is throw from mutator, to figure out what to do.

public abstract void
deserializeAndSet(JsonParser p, DeserializationContext ctxt, Object arg2)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.deserializeAndSet.

Method called to deserialize appropriate value, given parser (and context), and set it using appropriate mechanism.

public abstract Object
deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt, Object instance)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.deserializeSetAndReturn.

Alternative to deserializeAndSet that returns either return value of setter method called (if one is), or null to indicate that no return value is available.

public int
public abstract void
set(Object bean, Object value)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.set.

Method called to assign given value to this property, on specified Object.

public Object
setAndReturn(Object instance, Object value)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.setAndReturn.

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.

protected abstract SettableBeanProperty
withDelegate(SettableBeanProperty d)

Implements abstract com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.withDelegate.

Method sub-classes must implement, to construct a new instance with given delegate.

public abstract SettableBeanProperty
public final SettableBeanProperty
withValueDeserializer(JsonDeserializer<?>
Deserializer to assign to the new property instance
deser
)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.withValueDeserializer.

Fluent factory method for constructing and returning a new instance with specified value deserializer.

Inherited from com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating:
_withassignIndexfixAccessgetAnnotationgetCreatorIndexgetDeclaringClassgetDelegategetInjectableValueIdgetManagedReferenceNamegetMembergetObjectIdInfogetPropertyIndexgetValueDeserializergetValueTypeDeserializerhasValueDeserializerhasValueTypeDeserializerhasViewsisInjectionOnlyvisibleInViewwithNamewithNullProvider

Field Detail

_optimizedIndexback to summary
protected final int _optimizedIndex
_propertyMutatorback to summary
protected BeanPropertyMutator _propertyMutator
_skipNullsback to summary
protected final boolean _skipNulls
Since
2.9
brokenback to summary
private volatile boolean broken

Marker that we set if mutator turns out to be broken in a systematic way that we can handle by redirecting it back to standard one.

serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase.serialVersionUID.

Constructor Detail

OptimizedSettableBeanPropertyback to summary
protected OptimizedSettableBeanProperty(SettableBeanProperty src, BeanPropertyMutator mutator, int index)

Method Detail

_isDefaultDeserializerback to summary
protected boolean _isDefaultDeserializer(JsonDeserializer<?> deser)

Helper method used to check whether given deserializer is the default deserializer implementation: this is necessary to avoid overriding custom deserializers.

_reportProblemback to summary
protected void _reportProblem(Object bean, Object value, Throwable e) throws IOException

Helper method called when an exception is throw from mutator, to figure out what to do.

Since
2.9
deserializeAndSetback to summary
public abstract void deserializeAndSet(JsonParser p, DeserializationContext ctxt, Object arg2) throws IOException

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.deserializeAndSet.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserializeAndSet.

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).

Annotations
@Override
deserializeSetAndReturnback to summary
public abstract Object deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt, Object instance) throws IOException

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.deserializeSetAndReturn.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserializeSetAndReturn.

Alternative to deserializeAndSet 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.

Annotations
@Override
getOptimizedIndexback to summary
public int getOptimizedIndex()
setback to summary
public abstract void set(Object bean, Object value) throws IOException

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.set.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.set.

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.

Annotations
@Override
setAndReturnback to summary
public Object setAndReturn(Object instance, Object value) throws IOException

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.setAndReturn.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.setAndReturn.

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.

Annotations
@Override
withDelegateback to summary
protected abstract SettableBeanProperty withDelegate(SettableBeanProperty d)

Implements abstract com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.withDelegate.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.withDelegate.

Method sub-classes must implement, to construct a new instance with given delegate.

Annotations
@Override
withMutatorback to summary
public abstract SettableBeanProperty withMutator(BeanPropertyMutator mut)
withValueDeserializerback to summary
public final SettableBeanProperty withValueDeserializer(JsonDeserializer<?> deser)

Overrides com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating.withValueDeserializer.

Doc from com.fasterxml.jackson.databind.deser.SettableBeanProperty.withValueDeserializer.

Fluent factory method for constructing and returning a new instance with specified value deserializer. Note that this method should NOT change configuration of this instance.

Parameters
deser:JsonDeserializer<?>

Deserializer to assign to the new property instance

Returns:SettableBeanProperty

Newly constructed instance, if value deserializer differs from the one used for this instance; or 'this' if not.

Annotations
@Override