Package org.gradle.api.provider

## Interface ListProperty<T>

- Type Parameters:
    `T` - the type of elements.
  All Superinterfaces:
    `HasConfigurableValue`, `HasMultipleValues<T>`, `Provider<List<T>>`

      public interface ListProperty<T>
      extends Provider<List<T>>, HasMultipleValues<T>

  Represents a property whose type is a `List` of elements of type `ListProperty`.

  You can create a `ListProperty` instance using factory method `ObjectFactory.listProperty(Class)`.

  Note: This interface is not intended for implementation by build script or plugin authors.

  Since:
    4.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ListProperty<T>` | `convention​(Iterable<? extends T> elements)` | Specifies the value to use as the convention for this property.
    `ListProperty<T>` | `convention​(Provider<? extends Iterable<? extends T>> provider)` | Specifies the provider of the value to use as the convention for this property.
    `ListProperty<T>` | `empty()` | Sets the value of this property to an empty collection, and replaces any existing value.
    `ListProperty<T>` | `value​(Iterable<? extends T> elements)` | Sets the value of the property to the elements of the given iterable, and replaces any existing value.
    `ListProperty<T>` | `value​(Provider<? extends Iterable<? extends T>> provider)` | Sets the property to have the same value of the given provider, and replaces any existing value.

    - ### Methods inherited from interface org.gradle.api.provider.HasConfigurableValue

      `disallowChanges, disallowUnsafeRead, finalizeValueOnRead`

    - ### Methods inherited from interface org.gradle.api.provider.HasMultipleValues

      `add, add, addAll, addAll, addAll, finalizeValue, set, set`

    - ### Methods inherited from interface org.gradle.api.provider.Provider

      `flatMap, forUseAtConfigurationTime, get, getOrElse, getOrNull, isPresent, map, orElse, orElse, zip`

- - ### Method Detail

    - #### empty

          ListProperty<T> empty()

      Sets the value of this property to an empty collection, and replaces any existing value.
      Specified by:
        `empty` in interface `HasMultipleValues<T>`
      Returns:
        this property.

    - #### value

          ListProperty<T> value​(@Nullable
                                Iterable<? extends T> elements)

      Sets the value of the property to the elements of the given iterable, and replaces any existing value. This property will query the elements of the iterable each time the value of this property is queried.

      This is the same as `HasMultipleValues.set(Iterable)` but returns this property to allow method chaining.

      Specified by:
        `value` in interface `HasMultipleValues<T>`
      Parameters:
        `elements` - The elements, can be null.
      Returns:
        this

    - #### value

          ListProperty<T> value​(Provider<? extends Iterable<? extends T>> provider)

      Sets the property to have the same value of the given provider, and replaces any existing value. This property will track the value of the provider and query its value each time the value of this property is queried. When the provider has no value, this property will also have no value.

      This is the same as `HasMultipleValues.set(Provider)` but returns this property to allow method chaining.

      Specified by:
        `value` in interface `HasMultipleValues<T>`
      Parameters:
        `provider` - Provider of the elements.
      Returns:
        this

    - #### convention

          ListProperty<T> convention​(Iterable<? extends T> elements)

      Specifies the value to use as the convention for this property. The convention is used when no value has been set for this property.
      Specified by:
        `convention` in interface `HasMultipleValues<T>`
      Parameters:
        `elements` - The elements, or `null` when the convention is that the property has no value.
      Returns:
        this

    - #### convention

          ListProperty<T> convention​(Provider<? extends Iterable<? extends T>> provider)

      Specifies the provider of the value to use as the convention for this property. The convention is used when no value has been set for this property.
      Specified by:
        `convention` in interface `HasMultipleValues<T>`
      Parameters:
        `provider` - The provider of the elements
      Returns:
        this