# Interface Report

All Superinterfaces:
  `Configurable<Report>`

All Known Subinterfaces:
  `ConfigurableReport, CustomizableHtmlReport, DirectoryReport, JUnitXmlReport, SingleFileReport`

public interface Report extends Configurable<Report>
A file based report to be created.

Tasks that produce reports expose instances of this type for configuration via the `Reporting` interface.

Since:
  1.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `Report.OutputType`
  The type of output the report produces

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Namer<Report>`
  `NAMER`
  The namer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDisplayName()`
  A more descriptive name of this report.
  `String`
  `getName()`
  The symbolic name of this report.
  `Property<? extends FileSystemLocation>`
  `getOutputLocation()`
  The location on the filesystem to generate the report to.
  `Report.OutputType`
  `getOutputType()`
  The type of output that the report generates.
  `Property<Boolean>`
  `getRequired()`
  A flag that determines whether this report should be generated or not.

  ### Methods inherited from interface Configurable

  `configure`

- ## Field Details

  - ### NAMER

    static final Namer<Report> NAMER
    The namer.
    Since:
      1.0

- ## Method Details

  - ### getName

    @Input String getName()
    The symbolic name of this report.

    The name of the report usually indicates the format (e.g. XML, HTML etc.) but can be anything.

    When part of a `ReportContainer`, reports are accessed via their name. That is, given a report container variable named `reports` containing a report who's `getName()` returns `"html"`, the report could be accessed via:

        reports.html

    Returns:
      The name of this report.
    Since:
      1.0

  - ### getDisplayName

    @Input String getDisplayName()
    A more descriptive name of this report. Used when the report is referenced for end users.
    Returns:
      A more descriptive name of this report.
    Since:
      1.5

  - ### getRequired

    @Input Property<Boolean> getRequired()
    A flag that determines whether this report should be generated or not.
    Since:
      6.1

  - ### getOutputLocation

    @Internal("Implementations need to add the correct annotation, @OutputDirectory or @OutputFile") Property<? extends FileSystemLocation> getOutputLocation()
    The location on the filesystem to generate the report to.
    Since:
      6.1

  - ### getOutputType

    @Input Report.OutputType getOutputType()
    The type of output that the report generates.
    Returns:
      The type of output that the report generates.
    Since:
      1.0