Package org.gradle.model

## Interface ModelSet<T>

- Type Parameters:
    `T` - the type of model object
  All Superinterfaces:
    `Collection<T>`, `Iterable<T>`, `ModelElement`, `Named`, `Set<T>`

      @Incubating
      public interface ModelSet<T>
      extends Set<T>, ModelElement

  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(Object)`, `Set.clear()`). To add elements to the set, the `create(Action)` method can be used.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Named

      `Named.Namer`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | 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.

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream, toArray`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

    - ### Methods inherited from interface org.gradle.model.ModelElement

      `getDisplayName, getName`

    - ### Methods inherited from interface java.util.Set

      `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray`

- - ### Method Detail

    - #### create

          void create​(Action<? super T> action)

      Declares a new set element, configured by the given action.
      Parameters:
        `action` - the object configuration

    - #### beforeEach

          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

    - #### afterEach

          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