## org.springframework.beans
Class MutablePropertyValues

    java.lang.Object
      org.springframework.beans.MutablePropertyValues

All Implemented Interfaces:
  Serializable, PropertyValues

Direct Known Subclasses:
  PortletRequestParameterPropertyValues, ServletRequestParameterPropertyValues

    public class MutablePropertyValues

extends Object
implements PropertyValues, Serializable

Default implementation of the `PropertyValues` interface. Allows simple manipulation of properties, and provides constructors to support deep copy and construction from a Map.

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

Constructor Summary
`MutablePropertyValues()` Creates a new empty MutablePropertyValues object.
`MutablePropertyValues(List propertyValueList)` Construct a new MutablePropertyValues object using the given List of PropertyValue objects as-is.
`MutablePropertyValues(Map original)` Construct a new MutablePropertyValues object from a Map.
`MutablePropertyValues(PropertyValues original)` Deep copy constructor.

Method Summary
`MutablePropertyValues` `addPropertyValue(PropertyValue pv)` Add a PropertyValue object, replacing any existing one for the corresponding property.
`void` `addPropertyValue(String propertyName, Object propertyValue)` Overloaded version of `addPropertyValue` that takes a property name and a property value.
`MutablePropertyValues` `addPropertyValues(Map other)` Add all property values from the given Map.
`MutablePropertyValues` `addPropertyValues(PropertyValues other)` Copy all given PropertyValues into this object.
`PropertyValues` `changesSince(PropertyValues old)` Return the changes since the previous PropertyValues.
`void` `clear()` Clear this holder, removing all PropertyValues.
`boolean` `contains(String propertyName)` Is there a property value (or other processing entry) for this property?
`boolean` `equals(Object other)`
`PropertyValue` `getPropertyValue(String propertyName)` Return the property value with the given name, if any.
`List` `getPropertyValueList()` Return the underlying List of PropertyValue objects in its raw form.
`PropertyValue[]` `getPropertyValues()` Return an array of the PropertyValue objects held in this object.
`int` `hashCode()`
`boolean` `isConverted()` Return whether this holder contains converted values only (`true`), or whether the values still need to be converted (`false`).
`boolean` `isEmpty()` Does this holder not contain any PropertyValue objects at all?
`void` `registerProcessedProperty(String propertyName)` Register the specified property as "processed" in the sense of some processor calling the corresponding setter method outside of the PropertyValue(s) mechanism.
`void` `removePropertyValue(PropertyValue pv)` Remove the given PropertyValue, if contained.
`void` `removePropertyValue(String propertyName)` Overloaded version of `removePropertyValue` that takes a property name.
`void` `setConverted()` Mark this holder as containing converted values only (i.e. no runtime resolution needed anymore).
`void` `setPropertyValueAt(PropertyValue pv, int i)` Modify a PropertyValue object held in this object.
`int` `size()`
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### MutablePropertyValues

    public MutablePropertyValues()

  Creates a new empty MutablePropertyValues object. Property values can be added with the `addPropertyValue` methods.

  See Also:
    `addPropertyValue(PropertyValue)`, `addPropertyValue(String, Object)`

### MutablePropertyValues

    public MutablePropertyValues(PropertyValues original)

  Deep copy constructor. Guarantees PropertyValue references are independent, although it can't deep copy objects currently referenced by individual PropertyValue objects.

  Parameters:
    `original` - the PropertyValues to copy
  See Also:
    `addPropertyValues(PropertyValues)`

### MutablePropertyValues

    public MutablePropertyValues(Map original)

  Construct a new MutablePropertyValues object from a Map.

  Parameters:
    `original` - Map with property values keyed by property name Strings
  See Also:
    `addPropertyValues(Map)`

### MutablePropertyValues

    public MutablePropertyValues(List propertyValueList)

  Construct a new MutablePropertyValues object using the given List of PropertyValue objects as-is.

  This is a constructor for advanced usage scenarios. It is not intended for typical programmatic use.

  Parameters:
    `propertyValueList` - List of PropertyValue objects

Method Detail

### getPropertyValueList

    public List getPropertyValueList()

  Return the underlying List of PropertyValue objects in its raw form. The returned List can be modified directly, although this is not recommended.

  This is an accessor for optimized access to all PropertyValue objects. It is not intended for typical programmatic use.

### addPropertyValues

    public MutablePropertyValues addPropertyValues(PropertyValues other)

  Copy all given PropertyValues into this object. Guarantees PropertyValue references are independent, although it can't deep copy objects currently referenced by individual PropertyValue objects.

  Parameters:
    `other` - the PropertyValues to copy
  Returns:
    this object to allow creating objects, adding multiple PropertyValues in a single statement

### addPropertyValues

    public MutablePropertyValues addPropertyValues(Map other)

  Add all property values from the given Map.

  Parameters:
    `other` - Map with property values keyed by property name, which must be a String
  Returns:
    this object to allow creating objects, adding multiple PropertyValues in a single statement

### addPropertyValue

    public MutablePropertyValues addPropertyValue(PropertyValue pv)

  Add a PropertyValue object, replacing any existing one for the corresponding property.

  Parameters:
    `pv` - PropertyValue object to add
  Returns:
    this object to allow creating objects, adding multiple PropertyValues in a single statement

### addPropertyValue

    public void addPropertyValue(String propertyName,
                                 Object propertyValue)

  Overloaded version of `addPropertyValue` that takes a property name and a property value.

  Parameters:
    `propertyName` - name of the property
    `propertyValue` - value of the property
  See Also:
    `addPropertyValue(PropertyValue)`

### setPropertyValueAt

    public void setPropertyValueAt(PropertyValue pv,
                                   int i)

  Modify a PropertyValue object held in this object. Indexed from 0.

### removePropertyValue

    public void removePropertyValue(String propertyName)

  Overloaded version of `removePropertyValue` that takes a property name.

  Parameters:
    `propertyName` - name of the property
  See Also:
    `removePropertyValue(PropertyValue)`

### removePropertyValue

    public void removePropertyValue(PropertyValue pv)

  Remove the given PropertyValue, if contained.

  Parameters:
    `pv` - the PropertyValue to remove

### clear

    public void clear()

  Clear this holder, removing all PropertyValues.

### getPropertyValues

    public PropertyValue[] getPropertyValues()

  Description copied from interface: `PropertyValues`
  Return an array of the PropertyValue objects held in this object.

  Specified by:
    `getPropertyValues` in interface `PropertyValues`

### getPropertyValue

    public PropertyValue getPropertyValue(String propertyName)

  Description copied from interface: `PropertyValues`
  Return the property value with the given name, if any.

  Specified by:
    `getPropertyValue` in interface `PropertyValues`
  Parameters:
    `propertyName` - the name to search for
  Returns:
    the property value, or `null`

### registerProcessedProperty

    public void registerProcessedProperty(String propertyName)

  Register the specified property as "processed" in the sense of some processor calling the corresponding setter method outside of the PropertyValue(s) mechanism.

  This will lead to `true` being returned from a `contains(java.lang.String)` call for the specified property.

  Parameters:
    `propertyName` - the name of the property.

### contains

    public boolean contains(String propertyName)

  Description copied from interface: `PropertyValues`
  Is there a property value (or other processing entry) for this property?

  Specified by:
    `contains` in interface `PropertyValues`
  Parameters:
    `propertyName` - the name of the property we're interested in
  Returns:
    whether there is a property value for this property

### isEmpty

    public boolean isEmpty()

  Description copied from interface: `PropertyValues`
  Does this holder not contain any PropertyValue objects at all?

  Specified by:
    `isEmpty` in interface `PropertyValues`

### size

    public int size()

### changesSince

    public PropertyValues changesSince(PropertyValues old)

  Description copied from interface: `PropertyValues`
  Return the changes since the previous PropertyValues. Subclasses should also override `equals`.

  Specified by:
    `changesSince` in interface `PropertyValues`
  Parameters:
    `old` - old property values
  Returns:
    PropertyValues updated or new properties. Return empty PropertyValues if there are no changes.
  See Also:
    `Object.equals(java.lang.Object)`

### setConverted

    public void setConverted()

  Mark this holder as containing converted values only (i.e. no runtime resolution needed anymore).

### isConverted

    public boolean isConverted()

  Return whether this holder contains converted values only (`true`), or whether the values still need to be converted (`false`).

### equals

    public boolean equals(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`

Copyright © 2002-2008 The Spring Framework.