# ReportContainer

API Documentation: | `ReportContainer`

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 `Report.getRequired()` required} property.

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

### Properties

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

### Methods

Method | Description
`getByName(name)` | Locates an object by name, failing if there is no such object.
`getByName(name, configureClosure)` | Locates an object by name, failing if there is no such object. The given configure closure is executed against the object before it is returned from this method. The object is passed to the closure as its delegate.
`getByName(name, configureAction)` | Locates an object by name, failing if there is no such object. The given configure action is executed against the object before it is returned from this method.
`named(name)` | Locates a object by name, without triggering its creation or configuration, failing if there is no such object.
`named(name, type)` | Locates a object by name and type, without triggering its creation or configuration, failing if there is no such object.
`named(name, type, configurationAction)` | Locates a object by name and type, without triggering its creation or configuration, failing if there is no such object. The given configure action is executed against the object before it is returned from the provider.
`named(name, configurationAction)` | Locates a object by name, without triggering its creation or configuration, failing if there is no such object. The given configure action is executed against the object before it is returned from the provider.

### Script blocks

No script blocks

### Property details

#### ``NamedDomainObjectSet`<`T`>` `enabled` (read-only)

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.

### Method details

#### `T` `getByName`(`String` name)

Locates an object by name, failing if there is no such object.

#### `T` `getByName`(`String` name, `Closure` configureClosure)

Locates an object by name, failing if there is no such object. The given configure closure is executed against the object before it is returned from this method. The object is passed to the closure as its delegate.

#### `T` `getByName`(`String` name, ``Action`<? super `T`>` configureAction)

Locates an object by name, failing if there is no such object. The given configure action is executed against the object before it is returned from this method.

#### ``NamedDomainObjectProvider`<`T`>` `named`(`String` name)

Locates a object by name, without triggering its creation or configuration, failing if there is no such object.

#### ``NamedDomainObjectProvider`<`S`>` `named`(`String` name, ``Class`<`S`>` type)

Locates a object by name and type, without triggering its creation or configuration, failing if there is no such object.

#### ``NamedDomainObjectProvider`<`S`>` `named`(`String` name, ``Class`<`S`>` type, ``Action`<? super `S`>` configurationAction)

Locates a object by name and type, without triggering its creation or configuration, failing if there is no such object. The given configure action is executed against the object before it is returned from the provider.

#### ``NamedDomainObjectProvider`<`T`>` `named`(`String` name, ``Action`<? super `T`>` configurationAction)

Locates a object by name, without triggering its creation or configuration, failing if there is no such object. The given configure action is executed against the object before it is returned from the provider.