public class BeanDeserializerBuilder extends Object
JsonDeserializer
for deserializing
instances.Modifier and Type | Field and Description |
---|---|
protected SettableAnyProperty |
_anySetter
Fallback setter used for handling any properties that are not
mapped to regular setters.
|
protected HashMap<String,SettableBeanProperty> |
_backRefProperties
Back-reference properties this bean contains (if any)
|
protected BeanDescription |
_beanDesc
Introspected information about POJO for deserializer to handle
|
protected JsonPOJOBuilder.Value |
_builderConfig
In addition, Builder may have additional configuration
|
protected AnnotatedMethod |
_buildMethod
When creating Builder-based deserializers, this indicates
method to call on builder to finalize value.
|
protected DeserializationConfig |
_config |
protected DeserializationContext |
_context |
protected HashSet<String> |
_ignorableProps
Set of names of properties that are recognized but are to be ignored for deserialization
purposes (meaning no exception is thrown, value is just skipped).
|
protected boolean |
_ignoreAllUnknown
Flag that can be set to ignore and skip unknown properties.
|
protected HashSet<String> |
_includableProps
Set of names of properties that are recognized and are set to be included for deserialization
purposes (null deactivate this, empty includes nothing).
|
protected List<ValueInjector> |
_injectables
Value injectors for deserialization
|
protected ObjectIdReader |
_objectIdReader
Handler for Object Id values, if Object Ids are enabled for the
bean type.
|
protected Map<String,SettableBeanProperty> |
_properties
Properties to deserialize collected so far.
|
protected ValueInstantiator |
_valueInstantiator
Object that will handle value instantiation for the bean type.
|
Modifier | Constructor and Description |
---|---|
|
BeanDeserializerBuilder(BeanDescription beanDesc,
DeserializationContext ctxt) |
protected |
BeanDeserializerBuilder(BeanDeserializerBuilder src)
Copy constructor for sub-classes to use, when constructing
custom builder instances
|
Modifier and Type | Method and Description |
---|---|
protected Map<String,List<PropertyName>> |
_collectAliases(Collection<SettableBeanProperty> props) |
protected boolean |
_findCaseInsensitivity() |
protected void |
_fixAccess(Collection<SettableBeanProperty> mainProps) |
protected void |
_handleBadAccess(IllegalArgumentException e0)
Helper method for linking root cause to "invalid type definition" exception;
needed for troubleshooting issues with forcing access on later JDKs
(as module definition boundaries are more strictly enforced).
|
void |
addBackReferenceProperty(String referenceName,
SettableBeanProperty prop)
Method called to add a property that represents so-called back reference;
reference that "points back" to object that has forward reference to
currently built bean.
|
void |
addCreatorProperty(SettableBeanProperty prop)
Method called by deserializer factory, when a "creator property"
(something that is passed via constructor- or factory method argument;
instead of setter or field).
|
void |
addIgnorable(String propName)
Method that will add property name as one of properties that can
be ignored if not recognized.
|
void |
addIncludable(String propName)
Method that will add property name as one of the properties that will be included.
|
void |
addInjectable(PropertyName propName,
JavaType propType,
Annotations contextAnnotations,
AnnotatedMember member,
Object valueId) |
void |
addOrReplaceProperty(SettableBeanProperty prop,
boolean allowOverride)
Method for adding a new property or replacing a property.
|
void |
addProperty(SettableBeanProperty prop)
Method to add a property setter.
|
JsonDeserializer<?> |
build()
Method for constructing a
BeanDeserializer , given all
information collected. |
AbstractDeserializer |
buildAbstract()
Alternate build method used when we must be using some form of
abstract resolution, usually by using addition Type Id
("polymorphic deserialization")
|
JsonDeserializer<?> |
buildBuilderBased(JavaType valueType,
String expBuildMethodName)
Method for constructing a specialized deserializer that uses
additional external Builder object during data binding.
|
protected JsonDeserializer<?> |
createBuilderBasedDeserializer(JavaType valueType,
BeanPropertyMap propertyMap,
boolean anyViews)
Extension point for overriding the actual creation of the builder deserializer.
|
SettableBeanProperty |
findProperty(PropertyName propertyName) |
SettableAnyProperty |
getAnySetter() |
JsonPOJOBuilder.Value |
getBuilderConfig() |
AnnotatedMethod |
getBuildMethod() |
List<ValueInjector> |
getInjectables() |
ObjectIdReader |
getObjectIdReader() |
Iterator<SettableBeanProperty> |
getProperties()
Method that allows accessing all properties that this
builder currently contains.
|
ValueInstantiator |
getValueInstantiator() |
boolean |
hasIgnorable(String name) |
boolean |
hasProperty(PropertyName propertyName) |
SettableBeanProperty |
removeProperty(PropertyName name) |
void |
setAnySetter(SettableAnyProperty s) |
void |
setIgnoreUnknownProperties(boolean ignore) |
void |
setObjectIdReader(ObjectIdReader r) |
void |
setPOJOBuilder(AnnotatedMethod buildMethod,
JsonPOJOBuilder.Value config) |
void |
setValueInstantiator(ValueInstantiator inst) |
protected final DeserializationConfig _config
protected final DeserializationContext _context
protected final BeanDescription _beanDesc
protected final Map<String,SettableBeanProperty> _properties
protected List<ValueInjector> _injectables
protected HashMap<String,SettableBeanProperty> _backRefProperties
protected HashSet<String> _ignorableProps
protected HashSet<String> _includableProps
protected ValueInstantiator _valueInstantiator
protected ObjectIdReader _objectIdReader
protected SettableAnyProperty _anySetter
protected boolean _ignoreAllUnknown
protected AnnotatedMethod _buildMethod
protected JsonPOJOBuilder.Value _builderConfig
public BeanDeserializerBuilder(BeanDescription beanDesc, DeserializationContext ctxt)
protected BeanDeserializerBuilder(BeanDeserializerBuilder src)
public void addOrReplaceProperty(SettableBeanProperty prop, boolean allowOverride)
public void addProperty(SettableBeanProperty prop)
IllegalArgumentException
.public void addBackReferenceProperty(String referenceName, SettableBeanProperty prop) throws JsonMappingException
JsonMappingException
public void addInjectable(PropertyName propName, JavaType propType, Annotations contextAnnotations, AnnotatedMember member, Object valueId) throws JsonMappingException
JsonMappingException
public void addIgnorable(String propName)
public void addIncludable(String propName)
public void addCreatorProperty(SettableBeanProperty prop)
Default implementation does not do anything; we may need to revisit this decision if these properties need to be available through accessors. For now, however, we just have to ensure that we don't try to resolve types that masked setter/field has (see [JACKSON-700] for details).
public void setAnySetter(SettableAnyProperty s)
public void setIgnoreUnknownProperties(boolean ignore)
public void setValueInstantiator(ValueInstantiator inst)
public void setObjectIdReader(ObjectIdReader r)
public void setPOJOBuilder(AnnotatedMethod buildMethod, JsonPOJOBuilder.Value config)
public Iterator<SettableBeanProperty> getProperties()
Note that properties are returned in order that properties are ordered (explictly, or by rule), which is the serialization order.
public SettableBeanProperty findProperty(PropertyName propertyName)
public boolean hasProperty(PropertyName propertyName)
public SettableBeanProperty removeProperty(PropertyName name)
public SettableAnyProperty getAnySetter()
public ValueInstantiator getValueInstantiator()
public List<ValueInjector> getInjectables()
public ObjectIdReader getObjectIdReader()
public AnnotatedMethod getBuildMethod()
public JsonPOJOBuilder.Value getBuilderConfig()
public boolean hasIgnorable(String name)
public JsonDeserializer<?> build() throws JsonMappingException
BeanDeserializer
, given all
information collected.JsonMappingException
public AbstractDeserializer buildAbstract()
public JsonDeserializer<?> buildBuilderBased(JavaType valueType, String expBuildMethodName) throws JsonMappingException
JsonMappingException
protected JsonDeserializer<?> createBuilderBasedDeserializer(JavaType valueType, BeanPropertyMap propertyMap, boolean anyViews)
protected void _fixAccess(Collection<SettableBeanProperty> mainProps) throws JsonMappingException
JsonMappingException
protected Map<String,List<PropertyName>> _collectAliases(Collection<SettableBeanProperty> props)
protected boolean _findCaseInsensitivity()
protected void _handleBadAccess(IllegalArgumentException e0) throws JsonMappingException
JsonMappingException
Copyright © 2008–2023 FasterXML. All rights reserved.