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:
  • 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