org.springframework.core.env
Class MutablePropertySources

java.lang.Object
  extended by org.springframework.core.env.MutablePropertySources
All Implemented Interfaces:
Iterable<PropertySource<?>>, PropertySources

public class MutablePropertySources
extends Object
implements PropertySources

Default implementation of the PropertySources interface. Allows manipulation of contained property sources and provides constructor to copying an existing PropertySources instance.

Where precedence is mentioned in methods such as addFirst(org.springframework.core.env.PropertySource) and addLast(org.springframework.core.env.PropertySource), this is with regard to the order in which property sources will be searched when resolving a given property with a PropertyResolver.

Since:
3.1
Author:
Chris Beams
See Also:
PropertySourcesPropertyResolver

Constructor Summary
MutablePropertySources()
          Create a new MutablePropertySources object.
MutablePropertySources(PropertySources propertySources)
          Create a new MutablePropertySources from the given propertySources object, preserving the original order of contained PropertySource objects.
 
Method Summary
 void addAfter(String relativePropertySourceName, PropertySource<?> propertySource)
          Add the given property source object with precedence immediately lower than than the named relative property source.
 void addBefore(String relativePropertySourceName, PropertySource<?> propertySource)
          Add the given property source object with precedence immediately higher than the named relative property source.
 void addFirst(PropertySource<?> propertySource)
          Add the given property source object with highest precedence.
 void addLast(PropertySource<?> propertySource)
          Add the given property source object with lowest precedence.
protected  void assertLegalRelativeAddition(String relativePropertySourceName, PropertySource<?> propertySource)
          Ensure that the given property source is not being added relative to itself.
 boolean contains(String name)
          Return whether a property source with the given name is contained.
 PropertySource<?> get(String name)
          Return the property source with the given name, null if not found.
 Iterator<PropertySource<?>> iterator()
           
 int precedenceOf(PropertySource<?> propertySource)
          Return the precedence of the given property source, -1 if not found.
 PropertySource<?> remove(String name)
          Remove and return the property source with the given name, null if not found.
protected  void removeIfPresent(PropertySource<?> propertySource)
          Log the removal of the given propertySource if it is present.
 void replace(String name, PropertySource<?> propertySource)
          Replace the property source with the given name with the given property source object.
 int size()
          Return the number of PropertySource objects contained.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MutablePropertySources

public MutablePropertySources()
Create a new MutablePropertySources object.


MutablePropertySources

public MutablePropertySources(PropertySources propertySources)
Create a new MutablePropertySources from the given propertySources object, preserving the original order of contained PropertySource objects.

Method Detail

contains

public boolean contains(String name)
Description copied from interface: PropertySources
Return whether a property source with the given name is contained.

Specified by:
contains in interface PropertySources
Parameters:
name - the name of the property source to find

get

public PropertySource<?> get(String name)
Description copied from interface: PropertySources
Return the property source with the given name, null if not found.

Specified by:
get in interface PropertySources
Parameters:
name - the name of the property source to find

iterator

public Iterator<PropertySource<?>> iterator()
Specified by:
iterator in interface Iterable<PropertySource<?>>

addFirst

public void addFirst(PropertySource<?> propertySource)
Add the given property source object with highest precedence.


addLast

public void addLast(PropertySource<?> propertySource)
Add the given property source object with lowest precedence.


addBefore

public void addBefore(String relativePropertySourceName,
                      PropertySource<?> propertySource)
Add the given property source object with precedence immediately higher than the named relative property source.


addAfter

public void addAfter(String relativePropertySourceName,
                     PropertySource<?> propertySource)
Add the given property source object with precedence immediately lower than than the named relative property source.


precedenceOf

public int precedenceOf(PropertySource<?> propertySource)
Return the precedence of the given property source, -1 if not found.


remove

public PropertySource<?> remove(String name)
Remove and return the property source with the given name, null if not found.

Parameters:
name - the name of the property source to find and remove

replace

public void replace(String name,
                    PropertySource<?> propertySource)
Replace the property source with the given name with the given property source object.

Parameters:
name - the name of the property source to find and replace
propertySource - the replacement property source
Throws:
IllegalArgumentException - if no property source with the given name is present
See Also:
contains(java.lang.String)

size

public int size()
Return the number of PropertySource objects contained.


assertLegalRelativeAddition

protected void assertLegalRelativeAddition(String relativePropertySourceName,
                                           PropertySource<?> propertySource)
Ensure that the given property source is not being added relative to itself.


removeIfPresent

protected void removeIfPresent(PropertySource<?> propertySource)
Log the removal of the given propertySource if it is present.