Package org.springframework.beans.factory.config

# Class TypedStringValue

java.lang.Object
org.springframework.beans.factory.config.TypedStringValue

All Implemented Interfaces:
  `Comparable<TypedStringValue>`, `BeanMetadataElement`

public class TypedStringValue extends Object implements BeanMetadataElement, Comparable<TypedStringValue>
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 new `TypedStringValue` for the given String value.
`TypedStringValue(String value, Class<?> targetType)`
Create a new `TypedStringValue` for the given String value and target type.
`TypedStringValue(String value, String targetTypeName)`
Create a new `TypedStringValue` for the given String value and target type.

## Method Summary

Modifier and Type
Method
Description
`int`
`compareTo(TypedStringValue o)`
`boolean`
`equals(Object other)`
`Object`
`getSource()`
Return the configuration source `Object` for this metadata element (may be `null`).
`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 source `Object` 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()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### TypedStringValue

public TypedStringValue(@Nullable String value)
Create a new `TypedStringValue` for the given String value.

Parameters:
  `value` - the String value

### TypedStringValue

public TypedStringValue(@Nullable String value, Class<?> targetType)
Create a new `TypedStringValue` for the given String value and target type.

Parameters:
  `value` - the String value
  `targetType` - the type to convert to

### TypedStringValue

public TypedStringValue(@Nullable String value, String targetTypeName)
Create a new `TypedStringValue` for the given String value and target type.

Parameters:
  `value` - the String value
  `targetTypeName` - the type to convert to

## Method Details

### setValue

public void setValue(@Nullable String value)
Set the String value.

Only necessary for manipulating a registered value, for example in BeanFactoryPostProcessors.

### getValue

@Nullable public String getValue()
Return the String value.

### setTargetType

public void setTargetType(Class<?> targetType)
Set the type to convert to.

Only necessary for manipulating a registered value, for example in BeanFactoryPostProcessors.

### getTargetType

public Class<?> getTargetType()
Return the type to convert to.

### setTargetTypeName

public void setTargetTypeName(@Nullable String targetTypeName)
Specify the type to convert to.

### getTargetTypeName

@Nullable public String getTargetTypeName()
Return the type to convert to.

### hasTargetType

public boolean hasTargetType()
Return whether this typed String value carries a target type.

### resolveTargetType

@Nullable public Class<?> resolveTargetType(@Nullable 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(@Nullable Object source)
Set the configuration source `Object` for this metadata element.

The exact type of the object will depend on the configuration mechanism used.

### getSource

@Nullable public Object getSource()
Description copied from interface: `BeanMetadataElement`
Return the configuration source `Object` for this metadata element (may be `null`).

Specified by:
  `getSource` in interface `BeanMetadataElement`

### setSpecifiedTypeName

public void setSpecifiedTypeName(@Nullable String specifiedTypeName)
Set the type name as actually specified for this particular value, if any.

### getSpecifiedTypeName

@Nullable 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.

### compareTo

public int compareTo(@Nullable TypedStringValue o)

Specified by:
  `compareTo` in interface `Comparable<TypedStringValue>`

### equals

public boolean equals(@Nullable Object other)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`