org.gradle.api.provider

## Interface HasMultipleValues<T>

- Type Parameters:
    `T` - the type of elements.
  All Known Subinterfaces:
    ListProperty<T>, SetProperty<T>

      @Incubating
      public interface HasMultipleValues<T>

  Represents a property whose value can be set using multiple elements of type `T`, such as a collection property.

  Note: This interface is not intended for implementation by build script or plugin authors. You can use the factory methods on `ObjectFactory` to create instances of this interface.

  Since:
    4.5

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Provider<? extends T> provider)` Adds an element to the property value.
    `void` | `add(T element)` Adds an element to the property value.
    `void` | `addAll(Provider<? extends Iterable<T>> provider)` Adds zero or more elements to the property value.
    `void` | `set(Iterable<? extends T> value)` Sets the value of the property the given value.
    `void` | `set(Provider<? extends Iterable<? extends T>> provider)` Sets the property to have the same value of the given provider.

- - ### Method Detail

    - #### set

          void set(@Nullable
                   Iterable<? extends T> value)

      Sets the value of the property the given value.

      This method can also be used to clear the value of the property, by passing `null` as the value.

      Parameters:
        `value` - The value, can be null.

    - #### set

          void set(Provider<? extends Iterable<? extends T>> provider)

      Sets the property to have the same value of the given provider. This property will track the value of the provider and query its value each time the value of the property is queried. When the provider has no value, this property will also have no value.
      Parameters:
        `provider` - Provider

    - #### add

          void add(T element)

      Adds an element to the property value.
      Parameters:
        `element` - The element
      Throws:
        `NullPointerException` - if the specified element is null

    - #### add

          void add(Provider<? extends T> provider)

      Adds an element to the property value.

      The given provider will be queried when the value of the property is queried. The property will have no value when the given provider has no value.

      Parameters:
        `provider` - Provider

    - #### addAll

          void addAll(Provider<? extends Iterable<T>> provider)

      Adds zero or more elements to the property value.

      The given provider will be queried when the value of the property is queried. The property will have no value when the given provider has no value.

      Parameters:
        `provider` - Provider of elements