MutablePropertySources class
A mutable container for managing an ordered list of PropertySource objects.
This class allows adding, removing, and retrieving property sources dynamically by name or position. It maintains the search order for property resolution, where the first source added has the highest precedence during lookups.
This container is typically passed to a PropertySourcesPropertyResolver to resolve environment or configuration properties.
Example usage:
final sources = MutablePropertySources();
final defaults = MapPropertySource('defaults', {'debug': 'false'});
final env = MapPropertySource('env', {'debug': 'true'});
sources.addLast(defaults);
sources.addFirst(env); // env now has higher precedence
final value = sources.get('env')?.getProperty('debug'); // 'true'
sources.remove('defaults');
Ordering Methods
You can control precedence using:
This is particularly useful for layered configuration such as: command-line args > environment variables > default config.
- Inheritance
-
- Object
- Iterable<
PropertySource> - PropertySources
- MutablePropertySources
Constructors
- MutablePropertySources()
- A mutable container for managing an ordered list of PropertySource objects.
- MutablePropertySources.from(PropertySources propertySources)
- Creates a new mutable collection by copying all entries from an existing PropertySources instance.
Properties
- first → PropertySource
-
The first element.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEmpty → bool
-
Whether this collection has no elements.
no setterinherited
- isNotEmpty → bool
-
Whether this collection has at least one element.
no setterinherited
-
iterator
→ Iterator<
PropertySource> -
A new
Iteratorthat allows iterating the elements of thisIterable.no setteroverride - last → PropertySource
-
The last element.
no setterinherited
- length → int
-
The number of elements in this Iterable.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- single → PropertySource
-
Checks that this iterable has only one element, and returns that element.
no setterinherited
Methods
-
addAfter(
String relativeSourceName, PropertySource newSource) → void -
Inserts
newSourceafter the property source namedrelativeSourceName. -
addAll(
List< PropertySource> sources) → void -
Adds all
sourcesto the collection in the order provided. -
addBefore(
String relativeSourceName, PropertySource newSource) → void -
Inserts
newSourcebefore the property source namedrelativeSourceName. -
addFirst(
PropertySource source) → void -
Inserts the given
sourceat the beginning of the list, giving it the highest precedence during property resolution. -
addLast(
PropertySource source) → void -
Inserts the given
sourceat the end of the list, giving it the lowest precedence. -
addOrMerge(
Map< String, Object> source, String name) → void -
Adds a new MapPropertySource with the given
name, or merges the providedsourcemap into an existing one if a property source with the same name is already present. -
any(
bool test(PropertySource element)) → bool -
Checks whether any element of this iterable satisfies
test.inherited -
cast<
R> () → Iterable< R> -
A view of this iterable as an iterable of
Rinstances.inherited -
contains(
Object? element) → bool -
Whether the collection contains an element equal to
element.inherited -
containsName(
String name) → bool -
Returns
trueif this collection contains a PropertySource whose name matchesname. -
elementAt(
int index) → PropertySource -
Returns the
indexth element.inherited -
every(
bool test(PropertySource element)) → bool -
Checks whether every element of this iterable satisfies
test.inherited -
expand<
T> (Iterable< T> toElements(PropertySource element)) → Iterable<T> -
Expands each element of this Iterable into zero or more elements.
inherited
-
firstWhere(
bool test(PropertySource element), {PropertySource orElse()?}) → PropertySource -
The first element that satisfies the given predicate
test.inherited -
fold<
T> (T initialValue, T combine(T previousValue, PropertySource element)) → T -
Reduces a collection to a single value by iteratively combining each
element of the collection with an existing value
inherited
-
followedBy(
Iterable< PropertySource> other) → Iterable<PropertySource> -
Creates the lazy concatenation of this iterable and
other.inherited -
forEach(
void action(PropertySource element)) → void -
Invokes
actionon each element of this iterable in iteration order.inherited -
get(
String name) → PropertySource? -
Returns the PropertySource with the given name, or
nullif not found.inherited -
getPropertyNames(
) → List< String> -
Returns a list of the names of all PropertySources in this collection,
in iteration order.
inherited
-
join(
[String separator = ""]) → String -
Converts each element to a String and concatenates the strings.
inherited
-
lastWhere(
bool test(PropertySource element), {PropertySource orElse()?}) → PropertySource -
The last element that satisfies the given predicate
test.inherited -
map<
T> (T toElement(PropertySource e)) → Iterable< T> -
The current elements of this iterable modified by
toElement.inherited -
mergeIfPossible(
Map< String, Object> source, Map<String, Object> resultingSource, String name) → void -
Attempts to merge the provided
sourcemap into an existing MapPropertySource identified byname, writing the result intoresultingSource. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
precedenceOf(
PropertySource propertySource) → int -
Returns the index of
propertySourcewithin this collection, or-1if not found. -
reduce(
PropertySource combine(PropertySource value, PropertySource element)) → PropertySource -
Reduces a collection to a single value by iteratively combining elements
of the collection using the provided function.
inherited
-
remove(
String name) → PropertySource? -
Removes the property source with the given
name, if present. -
reorder(
List< PropertySourceOrderRule> rules) → void -
Reorders property sources using the provided
rules. -
replace(
String name, PropertySource propertySource) → void -
Replaces the property source with the given
namewithpropertySource. -
singleWhere(
bool test(PropertySource element), {PropertySource orElse()?}) → PropertySource -
The single element that satisfies
test.inherited -
skip(
int count) → Iterable< PropertySource> -
Creates an Iterable that provides all but the first
countelements.inherited -
skipWhile(
bool test(PropertySource value)) → Iterable< PropertySource> -
Creates an
Iterablethat skips leading elements whiletestis satisfied.inherited -
stream(
) → GenericStream< PropertySource> -
Returns a
GenericStreamover all PropertySources in this collection.inherited -
take(
int count) → Iterable< PropertySource> -
Creates a lazy iterable of the
countfirst elements of this iterable.inherited -
takeWhile(
bool test(PropertySource value)) → Iterable< PropertySource> -
Creates a lazy iterable of the leading elements satisfying
test.inherited -
toList(
{bool growable = true}) → List< PropertySource> -
Creates a List containing the elements of this Iterable.
inherited
-
toSet(
) → Set< PropertySource> -
Creates a Set containing the same elements as this iterable.
inherited
-
toString(
) → String -
Returns a string representation of (some of) the elements of
this.inherited -
where(
bool test(PropertySource element)) → Iterable< PropertySource> -
Creates a new lazy Iterable with all elements that satisfy the
predicate
test.inherited -
whereType<
T> () → Iterable< T> -
Creates a new lazy Iterable with all elements that have type
T.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited