Package: org.gradle.model

## [Java] Interface ModelSet<T>

- java.util.Collection

- All Superinterfaces:
    ManagedSet, Iterable, Collection

  A set of managed model objects.

  Managed types may declare managed set properties. Managed sets can only contain managed types.

  Managed set objects cannot be mutated via the mutative methods of the Set interface (e.g. Set.add, Set.clear). To add elements to the set, the create(Action) method can be used.

  Parameters:
    `` - the type of model object

- - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `afterEach(Action<? super T> configAction)` Apply the given action to each set element just before it is considered to be realised.
    `void` | `beforeEach(Action<? super T> configAction)` Apply the given action to each set element just after it is created.
    `void` | `create(Action<? super T> action)` Declares a new set element, configured by the given action.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `interface ManagedSet` | `afterEach, beforeEach, create`
    `interface Set` | `add, equals, hashCode, clear, contains, isEmpty, size, toArray, toArray, addAll, iterator, remove, containsAll, removeAll, retainAll`

- - ### Method Detail

    - #### public void afterEach(Action<? super T> configAction)

      Apply the given action to each set element just before it is considered to be realised.

      The configuration action is equivalent in terms of lifecycle to Finalize rule methods.

      Parameters:
        `configAction` - the object configuration

    - #### public void beforeEach(Action<? super T> configAction)

      Apply the given action to each set element just after it is created.

      The configuration action is equivalent in terms of lifecycle to Defaults rule methods.

      Parameters:
        `configAction` - the object configuration

    - #### public void create(Action<? super T> action)

      Declares a new set element, configured by the given action.

      Parameters:
        `action` - the object configuration