Package 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 thePropertyValues
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
Constructors Constructor Description MutablePropertyValues()
Creates a new empty MutablePropertyValues object.MutablePropertyValues(List<PropertyValue> 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MutablePropertyValues
add(String propertyName, Object propertyValue)
Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).void
addPropertyValue(String propertyName, Object propertyValue)
Overloaded version ofaddPropertyValue
that takes a property name and a property value.MutablePropertyValues
addPropertyValue(PropertyValue pv)
Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).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
clearProcessedProperty(String propertyName)
Clear the "processed" registration of the given property, if any.boolean
contains(String propertyName)
Is there a property value (or other processing entry) for this property?boolean
equals(Object other)
Object
get(String propertyName)
Get the raw property value, if any.PropertyValue
getPropertyValue(String propertyName)
Return the property value with the given name, if any.List<PropertyValue>
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(String propertyName)
Overloaded version ofremovePropertyValue
that takes a property name.void
removePropertyValue(PropertyValue pv)
Remove the given PropertyValue, if contained.void
setConverted()
Mark this holder as containing converted values only (i.e.void
setPropertyValueAt(PropertyValue pv, int i)
Modify a PropertyValue object held in this object.int
size()
Return the number of PropertyValue entries in the list.String
toString()
Constructor Detail
MutablePropertyValues
public MutablePropertyValues()
Creates a new empty MutablePropertyValues object.Property values can be added with the
add
method.- See Also:
add(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<PropertyValue> 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<PropertyValue> 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.
size
public int size()
Return the number of PropertyValue entries in the list.
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 in order to allow for adding multiple property values in a chain
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 in order to allow for adding multiple property values in a chain
addPropertyValue
public MutablePropertyValues addPropertyValue(PropertyValue pv)
Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).- Parameters:
pv
- PropertyValue object to add- Returns:
- this in order to allow for adding multiple property values in a chain
addPropertyValue
public void addPropertyValue(String propertyName, Object propertyValue)
Overloaded version ofaddPropertyValue
that takes a property name and a property value.Note: As of Spring 3.0, we recommend using the more concise and chaining-capable variant
add(java.lang.String, java.lang.Object)
.- Parameters:
propertyName
- name of the propertypropertyValue
- value of the property- See Also:
addPropertyValue(PropertyValue)
add
public MutablePropertyValues add(String propertyName, Object propertyValue)
Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).- Parameters:
propertyName
- name of the propertypropertyValue
- value of the property- Returns:
- this in order to allow for adding multiple property values in a chain
setPropertyValueAt
public void setPropertyValueAt(PropertyValue pv, int i)
Modify a PropertyValue object held in this object. Indexed from 0.
removePropertyValue
public void removePropertyValue(PropertyValue pv)
Remove the given PropertyValue, if contained.- Parameters:
pv
- the PropertyValue to remove
removePropertyValue
public void removePropertyValue(String propertyName)
Overloaded version ofremovePropertyValue
that takes a property name.- Parameters:
propertyName
- name of the property- See Also:
removePropertyValue(PropertyValue)
getPropertyValues
public PropertyValue[] getPropertyValues()
Description copied from interface:PropertyValues
Return an array of the PropertyValue objects held in this object.- Specified by:
getPropertyValues
in interfacePropertyValues
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 interfacePropertyValues
- Parameters:
propertyName
- the name to search for- Returns:
- the property value, or
null
get
public Object get(String propertyName)
Get the raw property value, if any.- Parameters:
propertyName
- the name to search for- Returns:
- the raw property value, or
null
if none found - Since:
- 4.0
- See Also:
getPropertyValue(String)
,PropertyValue.getValue()
changesSince
public PropertyValues changesSince(PropertyValues old)
Description copied from interface:PropertyValues
Return the changes since the previous PropertyValues. Subclasses should also overrideequals
.- Specified by:
changesSince
in interfacePropertyValues
- 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)
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 interfacePropertyValues
- 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 interfacePropertyValues
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 acontains(java.lang.String)
call for the specified property.- Parameters:
propertyName
- the name of the property.
clearProcessedProperty
public void clearProcessedProperty(String propertyName)
Clear the "processed" registration of the given property, if any.- Since:
- 3.2.13
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
).