org.springframework.beans

## Class PropertyValue

- java.lang.Object
- - org.springframework.core.AttributeAccessorSupport
  - - org.springframework.beans.BeanMetadataAttributeAccessor
    - - org.springframework.beans.PropertyValue

- All Implemented Interfaces:
    Serializable, BeanMetadataElement, AttributeAccessor

      public class PropertyValue
      extends BeanMetadataAttributeAccessor
      implements Serializable

  Object to hold information and value for an individual bean property. Using an object here, rather than just storing all properties in a map keyed by property name, allows for more flexibility, and the ability to handle indexed properties etc in an optimized way.

  Note that the value doesn't need to be the final required type: A `BeanWrapper` implementation should handle any necessary conversion, as this object doesn't know anything about the objects it will be applied to.

  Since:
    13 May 2001
  Author:
    Rod Johnson, Rob Harrop, Juergen Hoeller
  See Also:
    `PropertyValues`, `BeanWrapper`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PropertyValue(PropertyValue original)` Copy constructor.
    `PropertyValue(PropertyValue original, Object newValue)` Constructor that exposes a new value for an original value holder.
    `PropertyValue(String name, Object value)` Create a new PropertyValue instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)`
    `Object` | `getConvertedValue()` Return the converted value of the constructor argument, after processed type conversion.
    `String` | `getName()` Return the name of the property.
    `PropertyValue` | `getOriginalPropertyValue()` Return the original PropertyValue instance for this value holder.
    `Object` | `getValue()` Return the value of the property.
    `int` | `hashCode()`
    `boolean` | `isConverted()` Return whether this holder contains a converted value already (`true`), or whether the value still needs to be converted (`false`).
    `boolean` | `isOptional()`
    `void` | `setConvertedValue(Object value)` Set the converted value of the constructor argument, after processed type conversion.
    `void` | `setOptional(boolean optional)`
    `String` | `toString()`

    - ### Methods inherited from class org.springframework.beans.BeanMetadataAttributeAccessor

      `addMetadataAttribute, getAttribute, getMetadataAttribute, getSource, removeAttribute, setAttribute, setSource`

    - ### Methods inherited from class org.springframework.core.AttributeAccessorSupport

      `attributeNames, copyAttributesFrom, hasAttribute`

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

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

- - ### Constructor Detail

    - #### PropertyValue

          public PropertyValue(String name,
                       Object value)

      Create a new PropertyValue instance.
      Parameters:
        `name` - the name of the property (never `null`)
        `value` - the value of the property (possibly before type conversion)

    - #### PropertyValue

          public PropertyValue(PropertyValue original)

      Copy constructor.
      Parameters:
        `original` - the PropertyValue to copy (never `null`)

    - #### PropertyValue

          public PropertyValue(PropertyValue original,
                       Object newValue)

      Constructor that exposes a new value for an original value holder. The original holder will be exposed as source of the new holder.
      Parameters:
        `original` - the PropertyValue to link to (never `null`)
        `newValue` - the new value to apply

  - ### Method Detail

    - #### getName

          public String getName()

      Return the name of the property.

    - #### getValue

          public Object getValue()

      Return the value of the property.

      Note that type conversion will not have occurred here. It is the responsibility of the BeanWrapper implementation to perform type conversion.

    - #### getOriginalPropertyValue

          public PropertyValue getOriginalPropertyValue()

      Return the original PropertyValue instance for this value holder.
      Returns:
        the original PropertyValue (either a source of this value holder or this value holder itself).

    - #### setOptional

          public void setOptional(boolean optional)

    - #### isOptional

          public boolean isOptional()

    - #### isConverted

          public boolean isConverted()

      Return whether this holder contains a converted value already (`true`), or whether the value still needs to be converted (`false`).

    - #### setConvertedValue

          public void setConvertedValue(Object value)

      Set the converted value of the constructor argument, after processed type conversion.

    - #### getConvertedValue

          public Object getConvertedValue()

      Return the converted value of the constructor argument, after processed type conversion.

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `AttributeAccessorSupport`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AttributeAccessorSupport`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`