Class CreatorCollector
- java.lang.Object
-
- com.fasterxml.jackson.databind.deser.impl.CreatorCollector
-
public class CreatorCollector extends java.lang.Object
Container class for storing information on creators (based on annotations, visibility), to be able to build actualValueInstantiator
later on.
-
-
Field Summary
Fields Modifier and Type Field Description protected SettableBeanProperty[]
_arrayDelegateArgs
protected BeanDescription
_beanDesc
Type of bean being createdprotected boolean
_canFixAccess
protected AnnotatedWithParams[]
_creators
Set of creators we have collected so farprotected SettableBeanProperty[]
_delegateArgs
protected int
_explicitCreators
Bitmask of creators that were explicitly marked as creators; false for auto-detected (ones included base on naming and/or visibility, not annotation)protected boolean
_forceAccess
protected boolean
_hasNonDefaultCreator
protected SettableBeanProperty[]
_propertyBasedArgs
protected static int
C_ARRAY_DELEGATE
protected static int
C_BIG_DECIMAL
protected static int
C_BIG_INTEGER
protected static int
C_BOOLEAN
protected static int
C_DEFAULT
protected static int
C_DELEGATE
protected static int
C_DOUBLE
protected static int
C_INT
protected static int
C_LONG
protected static int
C_PROPS
protected static int
C_STRING
protected static java.lang.String[]
TYPE_DESCS
-
Constructor Summary
Constructors Constructor Description CreatorCollector(BeanDescription beanDesc, MapperConfig<?> config)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
_isEnumValueOf(AnnotatedWithParams creator)
Helper method for recognizing `Enum.valueOf()` factory methodprotected void
_reportDuplicateCreator(int typeIndex, boolean explicit, AnnotatedWithParams oldOne, AnnotatedWithParams newOne)
void
addBigDecimalCreator(AnnotatedWithParams creator, boolean explicit)
void
addBigIntegerCreator(AnnotatedWithParams creator, boolean explicit)
void
addBooleanCreator(AnnotatedWithParams creator, boolean explicit)
void
addDelegatingCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] injectables, int delegateeIndex)
void
addDoubleCreator(AnnotatedWithParams creator, boolean explicit)
void
addIntCreator(AnnotatedWithParams creator, boolean explicit)
void
addLongCreator(AnnotatedWithParams creator, boolean explicit)
void
addPropertyCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] properties)
void
addStringCreator(AnnotatedWithParams creator, boolean explicit)
ValueInstantiator
constructValueInstantiator(DeserializationContext ctxt)
boolean
hasDefaultCreator()
boolean
hasDelegatingCreator()
boolean
hasPropertyBasedCreator()
void
setDefaultCreator(AnnotatedWithParams creator)
Method called to indicate the default creator: no-arguments constructor or factory method that is called to instantiate a value before populating it with data.protected boolean
verifyNonDup(AnnotatedWithParams newOne, int typeIndex, boolean explicit)
-
-
-
Field Detail
-
C_DEFAULT
protected static final int C_DEFAULT
- See Also:
- Constant Field Values
-
C_STRING
protected static final int C_STRING
- See Also:
- Constant Field Values
-
C_INT
protected static final int C_INT
- See Also:
- Constant Field Values
-
C_LONG
protected static final int C_LONG
- See Also:
- Constant Field Values
-
C_BIG_INTEGER
protected static final int C_BIG_INTEGER
- See Also:
- Constant Field Values
-
C_DOUBLE
protected static final int C_DOUBLE
- See Also:
- Constant Field Values
-
C_BIG_DECIMAL
protected static final int C_BIG_DECIMAL
- See Also:
- Constant Field Values
-
C_BOOLEAN
protected static final int C_BOOLEAN
- See Also:
- Constant Field Values
-
C_DELEGATE
protected static final int C_DELEGATE
- See Also:
- Constant Field Values
-
C_PROPS
protected static final int C_PROPS
- See Also:
- Constant Field Values
-
C_ARRAY_DELEGATE
protected static final int C_ARRAY_DELEGATE
- See Also:
- Constant Field Values
-
TYPE_DESCS
protected static final java.lang.String[] TYPE_DESCS
-
_beanDesc
protected final BeanDescription _beanDesc
Type of bean being created
-
_canFixAccess
protected final boolean _canFixAccess
-
_forceAccess
protected final boolean _forceAccess
- Since:
- 2.7
-
_creators
protected final AnnotatedWithParams[] _creators
Set of creators we have collected so far- Since:
- 2.5
-
_explicitCreators
protected int _explicitCreators
Bitmask of creators that were explicitly marked as creators; false for auto-detected (ones included base on naming and/or visibility, not annotation)- Since:
- 2.5
-
_hasNonDefaultCreator
protected boolean _hasNonDefaultCreator
-
_delegateArgs
protected SettableBeanProperty[] _delegateArgs
-
_arrayDelegateArgs
protected SettableBeanProperty[] _arrayDelegateArgs
-
_propertyBasedArgs
protected SettableBeanProperty[] _propertyBasedArgs
-
-
Constructor Detail
-
CreatorCollector
public CreatorCollector(BeanDescription beanDesc, MapperConfig<?> config)
-
-
Method Detail
-
constructValueInstantiator
public ValueInstantiator constructValueInstantiator(DeserializationContext ctxt) throws JsonMappingException
- Throws:
JsonMappingException
-
setDefaultCreator
public void setDefaultCreator(AnnotatedWithParams creator)
Method called to indicate the default creator: no-arguments constructor or factory method that is called to instantiate a value before populating it with data. Default creator is only used if no other creators are indicated.- Parameters:
creator
- Creator method; no-arguments constructor or static factory method.
-
addStringCreator
public void addStringCreator(AnnotatedWithParams creator, boolean explicit)
-
addIntCreator
public void addIntCreator(AnnotatedWithParams creator, boolean explicit)
-
addLongCreator
public void addLongCreator(AnnotatedWithParams creator, boolean explicit)
-
addBigIntegerCreator
public void addBigIntegerCreator(AnnotatedWithParams creator, boolean explicit)
-
addDoubleCreator
public void addDoubleCreator(AnnotatedWithParams creator, boolean explicit)
-
addBigDecimalCreator
public void addBigDecimalCreator(AnnotatedWithParams creator, boolean explicit)
-
addBooleanCreator
public void addBooleanCreator(AnnotatedWithParams creator, boolean explicit)
-
addDelegatingCreator
public void addDelegatingCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] injectables, int delegateeIndex)
-
addPropertyCreator
public void addPropertyCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] properties)
-
hasDefaultCreator
public boolean hasDefaultCreator()
- Since:
- 2.1
-
hasDelegatingCreator
public boolean hasDelegatingCreator()
- Since:
- 2.6
-
hasPropertyBasedCreator
public boolean hasPropertyBasedCreator()
- Since:
- 2.6
-
verifyNonDup
protected boolean verifyNonDup(AnnotatedWithParams newOne, int typeIndex, boolean explicit)
- Returns:
- True if specified Creator is to be used
-
_reportDuplicateCreator
protected void _reportDuplicateCreator(int typeIndex, boolean explicit, AnnotatedWithParams oldOne, AnnotatedWithParams newOne)
-
_isEnumValueOf
protected boolean _isEnumValueOf(AnnotatedWithParams creator)
Helper method for recognizing `Enum.valueOf()` factory method- Since:
- 2.8.1
-
-