Class TypedStringValue
- java.lang.Object
- org.springframework.beans.factory.config.TypedStringValue
- All Implemented Interfaces:
BeanMetadataElement
public class TypedStringValue extends Object implements BeanMetadataElement
Holder for a typed String value. Can be added to bean definitions in order to explicitly specify a target type for a String value, for example for collection elements.This holder will just store the String value and the target type. The actual conversion will be performed by the bean factory.
- Since:
- 1.2
- Author:
- Juergen Hoeller
- See Also:
BeanDefinition.getPropertyValues()
,MutablePropertyValues.addPropertyValue(org.springframework.beans.PropertyValue)
Constructor Summary
Constructors Constructor Description TypedStringValue(String value)
Create a newTypedStringValue
for the given String value.TypedStringValue(String value, Class<?> targetType)
Create a newTypedStringValue
for the given String value and target type.TypedStringValue(String value, String targetTypeName)
Create a newTypedStringValue
for the given String value and target type.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
Object
getSource()
Return the configuration sourceObject
for this metadata element (may benull
).String
getSpecifiedTypeName()
Return the type name as actually specified for this particular value, if any.Class<?>
getTargetType()
Return the type to convert to.String
getTargetTypeName()
Return the type to convert to.String
getValue()
Return the String value.int
hashCode()
boolean
hasTargetType()
Return whether this typed String value carries a target type .boolean
isDynamic()
Return whether this value has been marked as dynamic.Class<?>
resolveTargetType(ClassLoader classLoader)
Determine the type to convert to, resolving it from a specified class name if necessary.void
setDynamic()
Mark this value as dynamic, i.e.void
setSource(Object source)
Set the configuration sourceObject
for this metadata element.void
setSpecifiedTypeName(String specifiedTypeName)
Set the type name as actually specified for this particular value, if any.void
setTargetType(Class<?> targetType)
Set the type to convert to.void
setTargetTypeName(String targetTypeName)
Specify the type to convert to.void
setValue(String value)
Set the String value.String
toString()
Constructor Detail
TypedStringValue
public TypedStringValue(String value)
Create a newTypedStringValue
for the given String value.- Parameters:
value
- the String value
TypedStringValue
public TypedStringValue(String value, Class<?> targetType)
Create a newTypedStringValue
for the given String value and target type.- Parameters:
value
- the String valuetargetType
- the type to convert to
TypedStringValue
public TypedStringValue(String value, String targetTypeName)
Create a newTypedStringValue
for the given String value and target type.- Parameters:
value
- the String valuetargetTypeName
- the type to convert to
Method Detail
setValue
public void setValue(String value)
Set the String value.Only necessary for manipulating a registered value, for example in BeanFactoryPostProcessors.
- See Also:
PropertyPlaceholderConfigurer
setTargetType
public void setTargetType(Class<?> targetType)
Set the type to convert to.Only necessary for manipulating a registered value, for example in BeanFactoryPostProcessors.
- See Also:
PropertyPlaceholderConfigurer
getTargetType
public Class<?> getTargetType()
Return the type to convert to.
setTargetTypeName
public void setTargetTypeName(String targetTypeName)
Specify the type to convert to.
getTargetTypeName
public String getTargetTypeName()
Return the type to convert to.
hasTargetType
public boolean hasTargetType()
Return whether this typed String value carries a target type .
resolveTargetType
public Class<?> resolveTargetType(ClassLoader classLoader) throws ClassNotFoundException
Determine the type to convert to, resolving it from a specified class name if necessary. Will also reload a specified Class from its name when called with the target type already resolved.- Parameters:
classLoader
- the ClassLoader to use for resolving a (potential) class name- Returns:
- the resolved type to convert to
- Throws:
ClassNotFoundException
- if the type cannot be resolved
setSource
public void setSource(Object source)
Set the configuration sourceObject
for this metadata element.The exact type of the object will depend on the configuration mechanism used.
getSource
public Object getSource()
Description copied from interface:BeanMetadataElement
Return the configuration sourceObject
for this metadata element (may benull
).- Specified by:
getSource
in interfaceBeanMetadataElement
setSpecifiedTypeName
public void setSpecifiedTypeName(String specifiedTypeName)
Set the type name as actually specified for this particular value, if any.
getSpecifiedTypeName
public String getSpecifiedTypeName()
Return the type name as actually specified for this particular value, if any.
setDynamic
public void setDynamic()
Mark this value as dynamic, i.e. as containing an expression and hence not being subject to caching.
isDynamic
public boolean isDynamic()
Return whether this value has been marked as dynamic.