Package org.springframework.core.env
Class MutablePropertySources
- java.lang.Object
- org.springframework.core.env.MutablePropertySources
- All Implemented Interfaces:
Iterable<PropertySource<?>>,PropertySources
public class MutablePropertySources extends Object implements PropertySources
The default implementation of thePropertySourcesinterface. Allows manipulation of contained property sources and provides a constructor for copying an existingPropertySourcesinstance.Where precedence is mentioned in methods such as
addFirst(org.springframework.core.env.PropertySource<?>)andaddLast(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 aPropertyResolver.- Since:
- 3.1
- Author:
- Chris Beams, Juergen Hoeller
- See Also:
PropertySourcesPropertyResolver
Constructor Summary
Constructors Constructor Description MutablePropertySources()Create a newMutablePropertySourcesobject.MutablePropertySources(PropertySources propertySources)Create a newMutablePropertySourcesfrom the given propertySources object, preserving the original order of containedPropertySourceobjects.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAfter(String relativePropertySourceName, PropertySource<?> propertySource)Add the given property source object with precedence immediately lower than the named relative property source.voidaddBefore(String relativePropertySourceName, PropertySource<?> propertySource)Add the given property source object with precedence immediately higher than the named relative property source.voidaddFirst(PropertySource<?> propertySource)Add the given property source object with highest precedence.voidaddLast(PropertySource<?> propertySource)Add the given property source object with lowest precedence.protected voidassertLegalRelativeAddition(String relativePropertySourceName, PropertySource<?> propertySource)Ensure that the given property source is not being added relative to itself.booleancontains(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,nullif not found.Iterator<PropertySource<?>>iterator()intprecedenceOf(PropertySource<?> propertySource)Return the precedence of the given property source,-1if not found.PropertySource<?>remove(String name)Remove and return the property source with the given name,nullif not found.protected voidremoveIfPresent(PropertySource<?> propertySource)Remove the given property source if it is present.voidreplace(String name, PropertySource<?> propertySource)Replace the property source with the given name with the given property source object.intsize()Return the number ofPropertySourceobjects contained.Spliterator<PropertySource<?>>spliterator()Stream<PropertySource<?>>stream()Return a sequentialStreamcontaining the property sources.StringtoString()
Constructor Detail
MutablePropertySources
public MutablePropertySources()
Create a newMutablePropertySourcesobject.
MutablePropertySources
public MutablePropertySources(PropertySources propertySources)
Create a newMutablePropertySourcesfrom the given propertySources object, preserving the original order of containedPropertySourceobjects.
Method Detail
iterator
public Iterator<PropertySource<?>> iterator()
- Specified by:
iteratorin interfaceIterable<PropertySource<?>>
spliterator
public Spliterator<PropertySource<?>> spliterator()
- Specified by:
spliteratorin interfaceIterable<PropertySource<?>>
stream
public Stream<PropertySource<?>> stream()
Description copied from interface:PropertySourcesReturn a sequentialStreamcontaining the property sources.- Specified by:
streamin interfacePropertySources
contains
public boolean contains(String name)
Description copied from interface:PropertySourcesReturn whether a property source with the given name is contained.- Specified by:
containsin interfacePropertySources- Parameters:
name- the name of the property source to find
get
@Nullable public PropertySource<?> get(String name)
Description copied from interface:PropertySourcesReturn the property source with the given name,nullif not found.- Specified by:
getin interfacePropertySources- Parameters:
name- the name of the property source to find
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 the named relative property source.
precedenceOf
public int precedenceOf(PropertySource<?> propertySource)
Return the precedence of the given property source,-1if not found.
remove
@Nullable public PropertySource<?> remove(String name)
Remove and return the property source with the given name,nullif 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 replacepropertySource- 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 ofPropertySourceobjects 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)
Remove the given property source if it is present.