Class PropertyBasedCreator
- java.lang.Object
-
- com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator
-
public final class PropertyBasedCreator extends java.lang.Object
Object that is used to collect arguments for non-default creator (non-default-constructor, or argument-taking factory method) before creator can be called. Since ordering of JSON properties is not guaranteed, this may require buffering of values other than ones being passed to creator.
-
-
Field Summary
Fields Modifier and Type Field Description protected SettableBeanProperty[]
_allProperties
Array that contains properties that expect value to inject, if any; null if no injectable values are expected.protected int
_propertyCount
Number of properties: usually same as size of_propertyLookup
, but not necessarily, when we have unnamed injectable properties.protected java.util.HashMap<java.lang.String,SettableBeanProperty>
_propertyLookup
Map that contains property objects for either constructor or factory method (whichever one is null: one property for each parameter for that one), keyed by logical property nameprotected ValueInstantiator
_valueInstantiator
Helper object that knows how to actually construct the instance by invoking creator method with buffered arguments.
-
Constructor Summary
Constructors Modifier Constructor Description protected
PropertyBasedCreator(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] creatorProps, boolean caseInsensitive, boolean addAliases)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.Object
build(DeserializationContext ctxt, PropertyValueBuffer buffer)
static PropertyBasedCreator
construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps)
Deprecated.static PropertyBasedCreator
construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, boolean caseInsensitive)
Factory method used for building actual instances to be used with types OTHER than POJOs.static PropertyBasedCreator
construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, BeanPropertyMap allProperties)
Factory method used for building actual instances to be used with POJOS: resolves deserializers, checks for "null values".SettableBeanProperty
findCreatorProperty(int propertyIndex)
SettableBeanProperty
findCreatorProperty(java.lang.String name)
java.util.Collection<SettableBeanProperty>
properties()
PropertyValueBuffer
startBuilding(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, ObjectIdReader oir)
Method called when starting to build a bean instance.
-
-
-
Field Detail
-
_propertyCount
protected final int _propertyCount
Number of properties: usually same as size of_propertyLookup
, but not necessarily, when we have unnamed injectable properties.
-
_valueInstantiator
protected final ValueInstantiator _valueInstantiator
Helper object that knows how to actually construct the instance by invoking creator method with buffered arguments.
-
_propertyLookup
protected final java.util.HashMap<java.lang.String,SettableBeanProperty> _propertyLookup
Map that contains property objects for either constructor or factory method (whichever one is null: one property for each parameter for that one), keyed by logical property name
-
_allProperties
protected final SettableBeanProperty[] _allProperties
Array that contains properties that expect value to inject, if any; null if no injectable values are expected.
-
-
Constructor Detail
-
PropertyBasedCreator
protected PropertyBasedCreator(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] creatorProps, boolean caseInsensitive, boolean addAliases)
-
-
Method Detail
-
construct
public static PropertyBasedCreator construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, BeanPropertyMap allProperties) throws JsonMappingException
Factory method used for building actual instances to be used with POJOS: resolves deserializers, checks for "null values".- Throws:
JsonMappingException
- Since:
- 2.9
-
construct
public static PropertyBasedCreator construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, boolean caseInsensitive) throws JsonMappingException
Factory method used for building actual instances to be used with types OTHER than POJOs. resolves deserializers and checks for "null values".- Throws:
JsonMappingException
- Since:
- 2.9
-
construct
@Deprecated public static PropertyBasedCreator construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps) throws JsonMappingException
Deprecated.- Throws:
JsonMappingException
-
properties
public java.util.Collection<SettableBeanProperty> properties()
-
findCreatorProperty
public SettableBeanProperty findCreatorProperty(java.lang.String name)
-
findCreatorProperty
public SettableBeanProperty findCreatorProperty(int propertyIndex)
-
startBuilding
public PropertyValueBuffer startBuilding(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, ObjectIdReader oir)
Method called when starting to build a bean instance.- Since:
- 2.1 (added ObjectIdReader parameter -- existed in previous versions without)
-
build
public java.lang.Object build(DeserializationContext ctxt, PropertyValueBuffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
-