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
ConstructorsConstructorDescriptionCreates 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).voidaddPropertyValue(String propertyName, Object propertyValue) Overloaded version ofaddPropertyValuethat 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.voidclearProcessedProperty(String propertyName) Clear the "processed" registration of the given property, if any.booleanIs there a property value (or other processing entry) for this property?booleanGet 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.inthashCode()booleanReturn whether this holder contains converted values only (true), or whether the values still need to be converted (false).booleanisEmpty()Does this holder not contain any PropertyValue objects at all?iterator()Return anIteratorover the property values.voidregisterProcessedProperty(String propertyName) Register the specified property as "processed" in the sense of some processor calling the corresponding setter method outside the PropertyValue(s) mechanism.voidremovePropertyValue(String propertyName) Overloaded version ofremovePropertyValuethat takes a property name.voidRemove the given PropertyValue, if contained.voidMark this holder as containing converted values only (i.e.voidsetPropertyValueAt(PropertyValue pv, int i) Modify a PropertyValue object held in this object.intsize()Return the number of PropertyValue entries in the list.Return aSpliteratorover the property values.stream()Return a sequentialStreamcontaining the property values.toString()
-
Constructor Details
-
MutablePropertyValues
public MutablePropertyValues()Creates a new empty MutablePropertyValues object.Property values can be added with the
addmethod.- 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 ofaddPropertyValuethat takes a property name and a property value.Note: we recommend using the more concise and chaining-capable variant
add(String, 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 ofremovePropertyValuethat takes a property name.- Parameters:
propertyName- name of the property- See Also:
-
iterator
Description copied from interface:PropertyValuesReturn anIteratorover the property values.- Specified by:
iteratorin interfaceIterable<PropertyValue>- Specified by:
iteratorin interfacePropertyValues
-
spliterator
Description copied from interface:PropertyValuesReturn aSpliteratorover the property values.- Specified by:
spliteratorin interfaceIterable<PropertyValue>- Specified by:
spliteratorin interfacePropertyValues
-
stream
Description copied from interface:PropertyValuesReturn a sequentialStreamcontaining the property values.- Specified by:
streamin interfacePropertyValues
-
getPropertyValues
Description copied from interface:PropertyValuesReturn an array of the PropertyValue objects held in this object.- Specified by:
getPropertyValuesin interfacePropertyValues
-
getPropertyValue
Description copied from interface:PropertyValuesReturn the property value with the given name, if any.- Specified by:
getPropertyValuein interfacePropertyValues- Parameters:
propertyName- the name to search for- Returns:
- the property value, or
nullif none
-
get
Get the raw property value, if any.- Parameters:
propertyName- the name to search for- Returns:
- the raw property value, or
nullif none found - Since:
- 4.0
- See Also:
-
changesSince
Description copied from interface:PropertyValuesReturn the changes since the previous PropertyValues. Subclasses should also overrideequals.- Specified by:
changesSincein 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:PropertyValuesIs there a property value (or other processing entry) for this property?- Specified by:
containsin 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:PropertyValuesDoes this holder not contain any PropertyValue objects at all?- Specified by:
isEmptyin interfacePropertyValues
-
registerProcessedProperty
Register the specified property as "processed" in the sense of some processor calling the corresponding setter method outside the PropertyValue(s) mechanism.This will lead to
truebeing 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
-