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, FindBugsReports, JacocoReportsContainer, JDependReports, 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 and Description
    --- | ---
    `static class` | `ReportContainer.ImmutableViolationException` The exception thrown when any of this container's mutation methods are called.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `NamedDomainObjectSet<T>` | `getEnabled()` Returns an immutable collection of all the enabled `Report` objects in this container.

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

      `findAll, matching, matching, withType`

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

      `add, addAll, addRule, addRule, findByName, getAsMap, getAt, getByName, getByName, getNamer, getNames, getRules`

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

      `all, all, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType`

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

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

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

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

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

      `configure`

- - ### Method Detail

    - #### getEnabled

          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.