Package org.springframework.beans
Class MutablePropertyValues
java.lang.Object
org.springframework.beans.MutablePropertyValues
- All Implemented Interfaces:
Serializable
,Iterable<PropertyValue>
,PropertyValues
- Direct Known Subclasses:
ServletRequestParameterPropertyValues
The 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:
-
Constructor Summary
ConstructorDescriptionCreates 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
Modifier and TypeMethodDescriptionAdd 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.Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).addPropertyValues
(Map<?, ?> other) Add all property values from the given Map.addPropertyValues
(PropertyValues other) Copy all given PropertyValues into this object.Return the changes since the previous PropertyValues.void
clearProcessedProperty
(String propertyName) Clear the "processed" registration of the given property, if any.boolean
Is there a property value (or other processing entry) for this property?boolean
Get the raw property value, if any.getPropertyValue
(String propertyName) Return the property value with the given name, if any.Return the underlying List of PropertyValue objects in its raw form.Return an array of the PropertyValue objects held in this object.int
hashCode()
boolean
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?iterator()
Return anIterator
over the property values.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
Remove the given PropertyValue, if contained.void
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.Return aSpliterator
over the property values.stream()
Return a sequentialStream
containing the property values.toString()
-
Constructor Details
-
MutablePropertyValues
public MutablePropertyValues()Creates a new empty MutablePropertyValues object.Property values can be added with the
add
method.- See Also:
-
MutablePropertyValues
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:
-
MutablePropertyValues
Construct a new MutablePropertyValues object from a Map.- Parameters:
original
- a Map with property values keyed by property name Strings- See Also:
-
MutablePropertyValues
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
- a List of PropertyValue objects
-
-
Method Details
-
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
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
Add all property values from the given Map.- Parameters:
other
- a 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
Add a PropertyValue object, replacing any existing one for the corresponding property or getting merged with it (if applicable).- Parameters:
pv
- the PropertyValue object to add- Returns:
- this in order to allow for adding multiple property values in a chain
-
addPropertyValue
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:
-
add
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
Modify a PropertyValue object held in this object. Indexed from 0. -
removePropertyValue
Remove the given PropertyValue, if contained.- Parameters:
pv
- the PropertyValue to remove
-
removePropertyValue
Overloaded version ofremovePropertyValue
that takes a property name.- Parameters:
propertyName
- name of the property- See Also:
-
iterator
Description copied from interface:PropertyValues
Return anIterator
over the property values.- Specified by:
iterator
in interfaceIterable<PropertyValue>
- Specified by:
iterator
in interfacePropertyValues
-
spliterator
Description copied from interface:PropertyValues
Return aSpliterator
over the property values.- Specified by:
spliterator
in interfaceIterable<PropertyValue>
- Specified by:
spliterator
in interfacePropertyValues
-
stream
Description copied from interface:PropertyValues
Return a sequentialStream
containing the property values.- Specified by:
stream
in interfacePropertyValues
-
getPropertyValues
Description copied from interface:PropertyValues
Return an array of the PropertyValue objects held in this object.- Specified by:
getPropertyValues
in interfacePropertyValues
-
getPropertyValue
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
if none
-
get
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:
-
changesSince
Description copied from interface:PropertyValues
Return the changes since the previous PropertyValues. Subclasses should also overrideequals
.- Specified by:
changesSince
in interfacePropertyValues
- Parameters:
old
- the old property values- Returns:
- the updated or new properties. Return empty PropertyValues if there are no changes.
- See Also:
-
contains
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
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
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
). -
equals
-
hashCode
public int hashCode() -
toString
-