Package org.gradle.api.reporting

## Interface ReportContainer<T extends Report>

- Type Parameters:
    `T` - The base report type for reports of this container.
  All Superinterfaces:
    `Collection<T>`, `org.gradle.util.Configurable<ReportContainer<T>>`, `DomainObjectCollection<T>`, `Iterable<T>`, `NamedDomainObjectCollection<T>`, `NamedDomainObjectSet<T>`, `Set<T>`
  All Known Subinterfaces:
    `BuildDashboardReports`, `CheckstyleReports`, `CodeNarcReports`, `DependencyReportContainer`, `JacocoReportsContainer`, `PmdReports`, `TestTaskReports`

      public interface ReportContainer<T extends Report>
      extends NamedDomainObjectSet<T>, org.gradle.util.Configurable<ReportContainer<T>>

  A container of `Report` objects, that represent potential reports.

  Things that produce reports (typically tasks) expose a report container that contains `Report` objects for each possible report that they can produce. Each report object can be configured individually, including whether or not it should be produced by way of its `enabled` property.

  `ReportContainer` implementations are immutable in that standard collection methods such as `add()`, `remove()` and `clear()` will throw an `ReportContainer.ImmutableViolationException`. However, implementations may provide new methods that allow the addition of new report object and/or the removal of existing report objects.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `ReportContainer.ImmutableViolationException` | The exception thrown when any of this container's mutation methods are called.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SortedMap<String,​T>` | `getAsMap()` | Returns the objects in this collection, as a map from object name to object instance.
    `NamedDomainObjectSet<T>` | `getEnabled()` | Returns an immutable collection of all the enabled `Report` objects in this container.
    `Map<String,​T>` | `getEnabledReports()` | Returns the enabled reports, keyed by report name.
    `Namer<T>` | `getNamer()` | An object that represents the naming strategy used to name objects of this collection.
    `SortedSet<String>` | `getNames()` | Returns the names of the objects in this collection as a Set of Strings.
    `List<Rule>` | `getRules()` | Returns the rules used by this collection.
    `boolean` | `isEmpty()` |

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

      `parallelStream, removeIf, stream, toArray`

    - ### Methods inherited from interface org.gradle.util.Configurable

      `configure`

    - ### Methods inherited from interface org.gradle.api.DomainObjectCollection

      `addAllLater, addLater, all, all, configureEach, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType`

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

      `forEach`

    - ### Methods inherited from interface org.gradle.api.NamedDomainObjectCollection

      `add, addAll, addRule, addRule, addRule, findByName, getAt, getByName, getByName, getByName, getCollectionSchema, named, named, named, named`

    - ### Methods inherited from interface org.gradle.api.NamedDomainObjectSet

      `findAll, matching, matching, withType`

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

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

- - ### Method Detail

    - #### getEnabled

          @Internal
          NamedDomainObjectSet<T> getEnabled()

      Returns an immutable collection of all the enabled `Report` objects in this container.

      The returned collection is live. That is, as reports are enabled/disabled the returned collection always reflects the current set of enabled reports.

      Returns:
        The enabled reports.

    - #### getNamer

          @Internal
          Namer<T> getNamer()

      Description copied from interface: `NamedDomainObjectCollection`
      An object that represents the naming strategy used to name objects of this collection.
      Specified by:
        `getNamer` in interface `NamedDomainObjectCollection<T extends Report>`
      Returns:
        Object representing the naming strategy.

    - #### getAsMap

          @Internal
          SortedMap<String,​T> getAsMap()

      Description copied from interface: `NamedDomainObjectCollection`

      Returns the objects in this collection, as a map from object name to object instance.

      The map is ordered by the natural ordering of the object names (i.e. keys).

      Specified by:
        `getAsMap` in interface `NamedDomainObjectCollection<T extends Report>`
      Returns:
        The objects. Returns an empty map if this collection is empty.

    - #### getNames

          @Internal
          SortedSet<String> getNames()

      Description copied from interface: `NamedDomainObjectCollection`

      Returns the names of the objects in this collection as a Set of Strings.

      The set of names is in natural ordering.

      Specified by:
        `getNames` in interface `NamedDomainObjectCollection<T extends Report>`
      Returns:
        The names. Returns an empty set if this collection is empty.

    - #### getRules

          @Internal
          List<Rule> getRules()

      Description copied from interface: `NamedDomainObjectCollection`
      Returns the rules used by this collection.
      Specified by:
        `getRules` in interface `NamedDomainObjectCollection<T extends Report>`
      Returns:
        The rules, in the order they will be applied.

    - #### isEmpty

          @Internal
          boolean isEmpty()

      Specified by:
        `isEmpty` in interface `Collection<T extends Report>`
      Specified by:
        `isEmpty` in interface `Set<T extends Report>`

    - #### getEnabledReports

          Map<String,​T> getEnabledReports()

      Returns the enabled reports, keyed by report name.
      Since:
        4.7