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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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,File>` | `getEnabledDirectoryReportDestinations()`
    `Map<String,File>` | `getEnabledFileReportDestinations()`
    `SortedSet<String>` | `getEnabledReportNames()`
    `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 org.gradle.api.NamedDomainObjectSet

      `findAll, matching, matching, withType`

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

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

    - ### 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, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray`

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

      `forEach`

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

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

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

      `configure`

- - ### 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>`

    - #### getEnabledDirectoryReportDestinations

          @Incubating
           @OutputDirectories
          Map<String,File> getEnabledDirectoryReportDestinations()

    - #### getEnabledFileReportDestinations

          @Incubating
           @OutputFiles
          Map<String,File> getEnabledFileReportDestinations()

    - #### getEnabledReportNames

          @Incubating
           @Input
          SortedSet<String> getEnabledReportNames()