# MutablePropertyValues class

Mutable implementation of PropertyValues interface.

This class provides a mutable collection of PropertyValue objects that can be modified after creation. It's the standard implementation used by pod definitions to store and manage property injection configuration.

Key features:

- Add, remove, and modify property values
- Merge with other PropertyValues instances
- Convert to/from various formats
- Support for property value validation
- Thread-safe operations when needed
- Efficient lookup and iteration

Example usage:

    final propertyValues = MutablePropertyValues();

    // Add properties
    propertyValues.add(PropertyValue('host', 'localhost'));
    propertyValues.add(PropertyValue('port', 8080));
    propertyValues.add(PropertyValue('timeout', 30));

    // Modify existing property
    propertyValues.addPropertyValue(PropertyValue('port', 9090));

    // Remove property
    propertyValues.removePropertyValue('timeout');

    // Check for property
    if (propertyValues.contains('host')) {
      final hostValue = propertyValues.getPropertyValue('host');
    }

Inheritance
  - Object
  - Iterable<PropertyValue>
  - PropertyValues
  - MutablePropertyValues
Mixed-in types
  - EqualsAndHashCode
  - ToString

## Constructors

MutablePropertyValues.new([List<PropertyValue>? propertyValues])
  Mutable implementation of PropertyValues interface.
MutablePropertyValues.copy(PropertyValues original)
  Create a deep copy of another PropertyValues instance.
MutablePropertyValues.from(PropertyValues pvs)
  Create from a PropertyValues instance.
  factory
MutablePropertyValues.fromMap(Map<String, Map<String, Object?>> source)
  Create from a Map of property names to values.

## Properties

first → PropertyValue
  The first element.
  no setter inherited
hashCode → int
  The hash code for this object.
  no setter inherited
isEmpty → bool
  Whether the collection has no properties.
  no setter override
isNotEmpty → bool
  Whether this collection has at least one element.
  no setter inherited
iterator → Iterator<PropertyValue>
  A new `Iterator` that allows iterating the elements of this `Iterable`.
  no setter override
last → PropertyValue
  The last element.
  no setter inherited
length → int
  The number of elements in this Iterable.
  no setter override
logger → Log
  Logger instance for logging messages.
  final
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
single → PropertyValue
  Checks that this iterable has only one element, and returns that element.
  no setter inherited

## Methods

add(String propertyName, Object? propertyValue, {String? qualifiedName, String? packageName}) → void
  Add a PropertyValue object by name and value.
addPropertyValue(PropertyValue pv) → MutablePropertyValues
  Add a PropertyValue object, replacing any existing one for the same property.
addPropertyValues(PropertyValues? other) → MutablePropertyValues
  Add all property values from another PropertyValues object.
addPropertyValuesFromMap(Map<String, Map<String, Object?>> other) → MutablePropertyValues
  Add all properties from a Map.
any(bool test(PropertyValue 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 `R` instances.
  inherited
changesSince(PropertyValues old) → PropertyValues
  Computes the set of properties that differ compared to another `old` PropertyValues.
  override
clear() → void
  Clear all property values.
clearProcessedProperty(String propertyName) → void
  Clear the processed properties set.
contains(Object? value) → bool
  Returns `true` if a property with the given `value` exists.
  inherited
containsProperty(String propertyName) → bool
  Returns `true` if a property with the given `propertyName` exists.
  override
copy() → MutablePropertyValues
  Create a deep copy of another PropertyValues instance.
elementAt(int index) → PropertyValue
  Returns the `index`th element.
  inherited
equalizedProperties() → List<Object?>
  Mixin-style contract for value-based equality, `hashCode`, and `toString`.
  override
every(bool test(PropertyValue element)) → bool
  Checks whether every element of this iterable satisfies `test`.
  inherited
expand<T>(Iterable<T> toElements(PropertyValue element)) → Iterable<T>
  Expands each element of this Iterable into zero or more elements.
  inherited
firstWhere(bool test(PropertyValue element), {PropertyValue orElse()?}) → PropertyValue
  The first element that satisfies the given predicate `test`.
  inherited
fold<T>(T initialValue, T combine(T previousValue, PropertyValue element)) → T
  Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
  inherited
followedBy(Iterable<PropertyValue> other) → Iterable<PropertyValue>
  Creates the lazy concatenation of this iterable and `other`.
  inherited
forEach(void action(PropertyValue element)) → void
  Invokes `action` on each element of this iterable in iteration order.
  inherited
getProcessedProperties() → Set<String>
  Get the set of processed properties.
getPropertyValue(String propertyName) → PropertyValue?
  Retrieves a property by its `propertyName`, or `null` if not found.
  override
getPropertyValueAt(int i) → PropertyValue
  Get PropertyValue at the given index.
getPropertyValues() → List<PropertyValue>
  Returns all property values as an unmodifiable list.
  override
isConverted() → bool
  Check if this PropertyValues has been converted.
join([String separator = ""]) → String
  Converts each element to a String and concatenates the strings.
  inherited
lastWhere(bool test(PropertyValue element), {PropertyValue orElse()?}) → PropertyValue
  The last element that satisfies the given predicate `test`.
  inherited
map<T>(T toElement(PropertyValue e)) → Iterable<T>
  The current elements of this iterable modified by `toElement`.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
reduce(PropertyValue combine(PropertyValue value, PropertyValue element)) → PropertyValue
  Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
  inherited
registerProcessedProperty(String propertyName) → void
  Register the specified property as processed.
removePropertyValue(PropertyValue pv) → void
  Remove the given PropertyValue, if contained.
removePropertyValueByName(String propertyName) → void
  Remove a PropertyValue by name.
setConverted() → void
  Mark this PropertyValues as converted.
setProcessedProperties(Set<String> processedProperties) → void
  Mark the specified properties as processed.
setPropertyValueAt(PropertyValue pv, int i) → MutablePropertyValues
  Set a property value at a specific index, replacing any existing one.
singleWhere(bool test(PropertyValue element), {PropertyValue orElse()?}) → PropertyValue
  The single element that satisfies `test`.
  inherited
skip(int count) → Iterable<PropertyValue>
  Creates an Iterable that provides all but the first `count` elements.
  inherited
skipWhile(bool test(PropertyValue value)) → Iterable<PropertyValue>
  Creates an `Iterable` that skips leading elements while `test` is satisfied.
  inherited
take(int count) → Iterable<PropertyValue>
  Creates a lazy iterable of the `count` first elements of this iterable.
  inherited
takeWhile(bool test(PropertyValue value)) → Iterable<PropertyValue>
  Creates a lazy iterable of the leading elements satisfying `test`.
  inherited
toList({bool growable = true}) → List<PropertyValue>
  Creates a List containing the elements of this Iterable.
  inherited
toSet() → Set<PropertyValue>
  Creates a Set containing the same elements as this iterable.
  inherited
toString() → String
  A string representation of this object.
  inherited
toStringOptions() → ToStringOptions
  override
where(bool test(PropertyValue element)) → Iterable<PropertyValue>
  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