Class StdValueInstantiator
- java.lang.Object
-
- org.codehaus.jackson.map.deser.ValueInstantiator
-
- org.codehaus.jackson.map.deser.std.StdValueInstantiator
-
public class StdValueInstantiator extends ValueInstantiator
BasicValueInstantiatorimplementation, which only supports use of default constructor. Sub-types can add support for alternate construction methods, such as using argument-taking constructors or static factory methods.- Since:
- 1.9.0
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean_cfgEmptyStringsAsObjectsAre we allowed to convert empty Strings to null objects?protected CreatorProperty[]_constructorArgumentsprotected AnnotatedWithParams_defaultCreatorDefault (no-argument) constructor to use for instantiation (withcreateUsingDefault())protected AnnotatedWithParams_delegateCreatorprotected JavaType_delegateTypeprotected AnnotatedWithParams_fromBooleanCreatorprotected AnnotatedWithParams_fromDoubleCreatorprotected AnnotatedWithParams_fromIntCreatorprotected AnnotatedWithParams_fromLongCreatorprotected AnnotatedWithParams_fromStringCreatorprotected String_valueTypeDescType of values that are instantiated; used for error reporting purposes.protected AnnotatedWithParams_withArgsCreator
-
Constructor Summary
Constructors Modifier Constructor Description protectedStdValueInstantiator(StdValueInstantiator src)Copy-constructor that sub-classes can use when creating new instances by fluent-style constructionStdValueInstantiator(DeserializationConfig config, Class<?> valueType)StdValueInstantiator(DeserializationConfig config, JavaType valueType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Object_createFromStringFallbacks(String value)booleancanCreateFromBoolean()Method that can be called to check whether a double (boolean / Boolean) based creator is available to use (to callValueInstantiator.createFromDouble(double)).booleancanCreateFromDouble()Method that can be called to check whether a double (double / Double) based creator is available to use (to callValueInstantiator.createFromDouble(double)).booleancanCreateFromInt()Method that can be called to check whether an integer (int, Integer) based creator is available to use (to callValueInstantiator.createFromInt(int)).booleancanCreateFromLong()Method that can be called to check whether a long (long, Long) based creator is available to use (to callValueInstantiator.createFromLong(long)).booleancanCreateFromObjectWith()Method that can be called to check whether a property-based creator (argument-taking constructor or factory method) is available to instantiate values from JSON ObjectbooleancanCreateFromString()Method that can be called to check whether a String-based creator is available for this instantiatorbooleancanCreateUsingDefault()Method that can be called to check whether a default creator (constructor, or no-arg static factory method) is available for this instantiatorvoidconfigureFromBooleanCreator(AnnotatedWithParams creator)voidconfigureFromDoubleCreator(AnnotatedWithParams creator)voidconfigureFromIntCreator(AnnotatedWithParams creator)voidconfigureFromLongCreator(AnnotatedWithParams creator)voidconfigureFromObjectSettings(AnnotatedWithParams defaultCreator, AnnotatedWithParams delegateCreator, JavaType delegateType, AnnotatedWithParams withArgsCreator, CreatorProperty[] constructorArgs)Method for setting properties related to instantiating values from JSON Object.voidconfigureFromStringCreator(AnnotatedWithParams creator)ObjectcreateFromBoolean(boolean value)ObjectcreateFromDouble(double value)ObjectcreateFromInt(int value)ObjectcreateFromLong(long value)ObjectcreateFromObjectWith(Object[] args)Method called to create value instance from JSON Object when instantiation arguments are passed; this is done, for example when passing information specified with "Creator" annotations.ObjectcreateFromString(String value)ObjectcreateUsingDefault()Method called to create value instance from a JSON value when no data needs to passed to creator (constructor, factory method); typically this will call the default constructor of the value object.ObjectcreateUsingDelegate(Object delegate)Method to called to create value instance from JSON Object using an intermediate "delegate" value to pass to createor methodAnnotatedWithParamsgetDefaultCreator()Method that can be called to try to access member (constructor, static factory method) that is used as the "default creator" (creator that is called without arguments; typically default [zero-argument] constructor of the type).AnnotatedWithParamsgetDelegateCreator()Method that can be called to try to access member (constructor, static factory method) that is used as the "delegate creator".JavaTypegetDelegateType()Method that can be used to determine what is the type of delegate type to use, if any; if no delegates are used, will return null.SettableBeanProperty[]getFromObjectArguments()Method called to determine types of instantiation arguments to use when creating instances with creator arguments (whenValueInstantiator.canCreateFromObjectWith()returns true).StringgetValueTypeDesc()Method that returns description of the value type this instantiator handles.AnnotatedWithParamsgetWithArgsCreator()Method that can be called to try to access member (constructor, static factory method) that is used as the "non-default creator" (constructor or factory method that takes one or more arguments).protected JsonMappingExceptionwrapException(Throwable t)-
Methods inherited from class org.codehaus.jackson.map.deser.ValueInstantiator
canCreateUsingDelegate, canInstantiate
-
-
-
-
Field Detail
-
_valueTypeDesc
protected final String _valueTypeDesc
Type of values that are instantiated; used for error reporting purposes.
-
_cfgEmptyStringsAsObjects
protected final boolean _cfgEmptyStringsAsObjects
Are we allowed to convert empty Strings to null objects?
-
_defaultCreator
protected AnnotatedWithParams _defaultCreator
Default (no-argument) constructor to use for instantiation (withcreateUsingDefault())
-
_constructorArguments
protected CreatorProperty[] _constructorArguments
-
_withArgsCreator
protected AnnotatedWithParams _withArgsCreator
-
_delegateType
protected JavaType _delegateType
-
_delegateCreator
protected AnnotatedWithParams _delegateCreator
-
_fromStringCreator
protected AnnotatedWithParams _fromStringCreator
-
_fromIntCreator
protected AnnotatedWithParams _fromIntCreator
-
_fromLongCreator
protected AnnotatedWithParams _fromLongCreator
-
_fromDoubleCreator
protected AnnotatedWithParams _fromDoubleCreator
-
_fromBooleanCreator
protected AnnotatedWithParams _fromBooleanCreator
-
-
Constructor Detail
-
StdValueInstantiator
public StdValueInstantiator(DeserializationConfig config, Class<?> valueType)
-
StdValueInstantiator
public StdValueInstantiator(DeserializationConfig config, JavaType valueType)
-
StdValueInstantiator
protected StdValueInstantiator(StdValueInstantiator src)
Copy-constructor that sub-classes can use when creating new instances by fluent-style construction
-
-
Method Detail
-
configureFromObjectSettings
public void configureFromObjectSettings(AnnotatedWithParams defaultCreator, AnnotatedWithParams delegateCreator, JavaType delegateType, AnnotatedWithParams withArgsCreator, CreatorProperty[] constructorArgs)
Method for setting properties related to instantiating values from JSON Object. We will choose basically only one approach (out of possible three), and clear other properties
-
configureFromStringCreator
public void configureFromStringCreator(AnnotatedWithParams creator)
-
configureFromIntCreator
public void configureFromIntCreator(AnnotatedWithParams creator)
-
configureFromLongCreator
public void configureFromLongCreator(AnnotatedWithParams creator)
-
configureFromDoubleCreator
public void configureFromDoubleCreator(AnnotatedWithParams creator)
-
configureFromBooleanCreator
public void configureFromBooleanCreator(AnnotatedWithParams creator)
-
getValueTypeDesc
public String getValueTypeDesc()
Description copied from class:ValueInstantiatorMethod that returns description of the value type this instantiator handles. Used for error messages, diagnostics.- Specified by:
getValueTypeDescin classValueInstantiator
-
canCreateFromString
public boolean canCreateFromString()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a String-based creator is available for this instantiator- Overrides:
canCreateFromStringin classValueInstantiator
-
canCreateFromInt
public boolean canCreateFromInt()
Description copied from class:ValueInstantiatorMethod that can be called to check whether an integer (int, Integer) based creator is available to use (to callValueInstantiator.createFromInt(int)).- Overrides:
canCreateFromIntin classValueInstantiator
-
canCreateFromLong
public boolean canCreateFromLong()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a long (long, Long) based creator is available to use (to callValueInstantiator.createFromLong(long)).- Overrides:
canCreateFromLongin classValueInstantiator
-
canCreateFromDouble
public boolean canCreateFromDouble()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a double (double / Double) based creator is available to use (to callValueInstantiator.createFromDouble(double)).- Overrides:
canCreateFromDoublein classValueInstantiator
-
canCreateFromBoolean
public boolean canCreateFromBoolean()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a double (boolean / Boolean) based creator is available to use (to callValueInstantiator.createFromDouble(double)).- Overrides:
canCreateFromBooleanin classValueInstantiator
-
canCreateUsingDefault
public boolean canCreateUsingDefault()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a default creator (constructor, or no-arg static factory method) is available for this instantiator- Overrides:
canCreateUsingDefaultin classValueInstantiator
-
canCreateFromObjectWith
public boolean canCreateFromObjectWith()
Description copied from class:ValueInstantiatorMethod that can be called to check whether a property-based creator (argument-taking constructor or factory method) is available to instantiate values from JSON Object- Overrides:
canCreateFromObjectWithin classValueInstantiator
-
getDelegateType
public JavaType getDelegateType()
Description copied from class:ValueInstantiatorMethod that can be used to determine what is the type of delegate type to use, if any; if no delegates are used, will return null. If non-null type is returned, deserializer will bind JSON into specified type (using standard deserializer for that type), and pass that to instantiator.- Overrides:
getDelegateTypein classValueInstantiator
-
getFromObjectArguments
public SettableBeanProperty[] getFromObjectArguments()
Description copied from class:ValueInstantiatorMethod called to determine types of instantiation arguments to use when creating instances with creator arguments (whenValueInstantiator.canCreateFromObjectWith()returns true). These arguments are bound from JSON, using specified property types to locate deserializers.NOTE: all properties will be of type
CreatorProperty.- Overrides:
getFromObjectArgumentsin classValueInstantiator
-
createUsingDefault
public Object createUsingDefault() throws IOException, JsonProcessingException
Description copied from class:ValueInstantiatorMethod called to create value instance from a JSON value when no data needs to passed to creator (constructor, factory method); typically this will call the default constructor of the value object. It will only be used if more specific creator methods are not applicable; hence "default".This method is called if
ValueInstantiator.getFromObjectArguments()returns null or empty List.- Overrides:
createUsingDefaultin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromObjectWith
public Object createFromObjectWith(Object[] args) throws IOException, JsonProcessingException
Description copied from class:ValueInstantiatorMethod called to create value instance from JSON Object when instantiation arguments are passed; this is done, for example when passing information specified with "Creator" annotations.This method is called if
ValueInstantiator.getFromObjectArguments()returns a non-empty List of arguments.- Overrides:
createFromObjectWithin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createUsingDelegate
public Object createUsingDelegate(Object delegate) throws IOException, JsonProcessingException
Description copied from class:ValueInstantiatorMethod to called to create value instance from JSON Object using an intermediate "delegate" value to pass to createor method- Overrides:
createUsingDelegatein classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromString
public Object createFromString(String value) throws IOException, JsonProcessingException
- Overrides:
createFromStringin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromInt
public Object createFromInt(int value) throws IOException, JsonProcessingException
- Overrides:
createFromIntin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromLong
public Object createFromLong(long value) throws IOException, JsonProcessingException
- Overrides:
createFromLongin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromDouble
public Object createFromDouble(double value) throws IOException, JsonProcessingException
- Overrides:
createFromDoublein classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
createFromBoolean
public Object createFromBoolean(boolean value) throws IOException, JsonProcessingException
- Overrides:
createFromBooleanin classValueInstantiator- Throws:
IOExceptionJsonProcessingException
-
getDelegateCreator
public AnnotatedWithParams getDelegateCreator()
Description copied from class:ValueInstantiatorMethod that can be called to try to access member (constructor, static factory method) that is used as the "delegate creator". Note that implementations not required to return actual object they use (or, they may use some other instantiation) method. That is, even ifValueInstantiator.canCreateUsingDelegate()returns true, this method may return null .- Overrides:
getDelegateCreatorin classValueInstantiator
-
getDefaultCreator
public AnnotatedWithParams getDefaultCreator()
Description copied from class:ValueInstantiatorMethod that can be called to try to access member (constructor, static factory method) that is used as the "default creator" (creator that is called without arguments; typically default [zero-argument] constructor of the type). Note that implementations not required to return actual object they use (or, they may use some other instantiation) method. That is, even ifValueInstantiator.canCreateUsingDefault()returns true, this method may return null .- Overrides:
getDefaultCreatorin classValueInstantiator
-
getWithArgsCreator
public AnnotatedWithParams getWithArgsCreator()
Description copied from class:ValueInstantiatorMethod that can be called to try to access member (constructor, static factory method) that is used as the "non-default creator" (constructor or factory method that takes one or more arguments). Note that implementations not required to return actual object they use (or, they may use some other instantiation) method. That is, even ifValueInstantiator.canCreateFromObjectWith()returns true, this method may return null .- Overrides:
getWithArgsCreatorin classValueInstantiator
-
_createFromStringFallbacks
protected Object _createFromStringFallbacks(String value) throws IOException, JsonProcessingException
- Throws:
IOExceptionJsonProcessingException
-
wrapException
protected JsonMappingException wrapException(Throwable t)
-
-