org.apache.maven.reporting

## Class AbstractMavenReport

- java.lang.Object
- - org.apache.maven.plugin.AbstractMojo
  - - org.apache.maven.reporting.AbstractMavenReport

All Implemented Interfaces:
  org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenMultiPageReport, org.apache.maven.reporting.MavenReport

    public abstract class AbstractMavenReport
    extends org.apache.maven.plugin.AbstractMojo
    implements org.apache.maven.reporting.MavenMultiPageReport

The basis for a Maven report which can be generated both as part of a site generation or as a direct standalone goal invocation. Both invocations are delegated to `abstract executeReport( Locale )` from:

- Mojo's `execute()` method, see maven-plugin-api
- MavenMultiPageReport's `generate( Sink, SinkFactory, Locale )`, see maven-reporting-api

Since:
  2.0
Version:
  $Id: AbstractMavenReport.java 1777736 2017-01-06 23:54:39Z michaelo $
Author:
  Emmanuel Venisse
See Also:
  ``Mojo.execute()`, from maven-plugin-api`, ``MavenMultiPageReport.generate( Sink, SinkFactory, Locale )`, from maven-reporting-api`, ``abstract executeReport( Locale )``

### Field Summary

Fields
`protected File` `outputDirectory` The output directory for the report.
`protected org.apache.maven.project.MavenProject` `project` The Maven Project.
`protected org.apache.maven.doxia.siterenderer.Renderer` `siteRenderer` Doxia Site Renderer component.

### Fields inherited from interface org.apache.maven.reporting.MavenReport

`CATEGORY_PROJECT_INFORMATION, CATEGORY_PROJECT_REPORTS, ROLE`

### Fields inherited from interface org.apache.maven.plugin.Mojo

`ROLE`

### Constructor Summary

Constructors
Constructor and Description
`AbstractMavenReport()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`boolean` `canGenerateReport()`
`protected void` `closeReport()` Actions when closing the report.
`void` `execute()` This method is called when the report generation is invoked directly as a standalone Mojo.
`protected abstract void` `executeReport(Locale locale)` Execute the generation of the report.
`void` `generate(org.codehaus.doxia.sink.Sink sink, Locale locale)` Deprecated. use `generate(Sink, SinkFactory, Locale)` instead.
`void` `generate(org.apache.maven.doxia.sink.Sink sink, Locale locale)` Deprecated. use `generate(Sink, SinkFactory, Locale)` instead.
`void` `generate(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.sink.SinkFactory sinkFactory, Locale locale)` This method is called when the report generation is invoked by maven-site-plugin.
`String` `getCategoryName()`
`protected String` `getInputEncoding()` Gets the input files encoding.
`protected String` `getOutputDirectory()`
`protected String` `getOutputEncoding()` Gets the effective reporting output files encoding.
`protected org.apache.maven.project.MavenProject` `getProject()`
`File` `getReportOutputDirectory()`
`org.apache.maven.doxia.sink.Sink` `getSink()`
`org.apache.maven.doxia.sink.SinkFactory` `getSinkFactory()`
`protected org.apache.maven.doxia.siterenderer.Renderer` `getSiteRenderer()`
`boolean` `isExternalReport()`
`void` `setReportOutputDirectory(File reportOutputDirectory)`

### Methods inherited from class org.apache.maven.plugin.AbstractMojo

`getLog, getPluginContext, setLog, setPluginContext`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.maven.reporting.MavenReport

`getDescription, getName, getOutputName`

### Field Detail

#### outputDirectory

    @Parameter(defaultValue="${project.reporting.outputDirectory}",
               readonly=true,
               required=true)
    protected File outputDirectory

The output directory for the report. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the output directory configured in the Maven Site Plugin is used instead.

#### project

    @Parameter(defaultValue="${project}",
               readonly=true,
               required=true)
    protected org.apache.maven.project.MavenProject project

The Maven Project.

#### siteRenderer

    @Component
    protected org.apache.maven.doxia.siterenderer.Renderer siteRenderer

Doxia Site Renderer component.

### Constructor Detail

#### AbstractMavenReport

    public AbstractMavenReport()

### Method Detail

#### execute

    public void execute()
                 throws org.apache.maven.plugin.MojoExecutionException

This method is called when the report generation is invoked directly as a standalone Mojo.

Specified by:
  `execute` in interface `org.apache.maven.plugin.Mojo`
Throws:
  `org.apache.maven.plugin.MojoExecutionException` - if an error occurs when generating the report
See Also:
  `org.apache.maven.plugins.site.ReportDocumentRender`, `Mojo.execute()`

#### generate

    public void generate(org.codehaus.doxia.sink.Sink sink,
                         Locale locale)
                  throws org.apache.maven.reporting.MavenReportException

Deprecated. use `generate(Sink, SinkFactory, Locale)` instead.
Generate a report.

Specified by:
  `generate` in interface `org.apache.maven.reporting.MavenReport`
Parameters:
  `sink` - the sink to use for the generation.
  `locale` - the wanted locale to generate the report, could be null.
Throws:
  `MavenReportException` - if any

#### generate

    public void generate(org.apache.maven.doxia.sink.Sink sink,
                         Locale locale)
                  throws org.apache.maven.reporting.MavenReportException

Deprecated. use `generate(Sink, SinkFactory, Locale)` instead.
Generate a report.

Parameters:
  `sink` -
  `locale` -
Throws:
  `MavenReportException`
See Also:
  `org.apache.maven.reporting.MavenReport#generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)`

#### generate

    public void generate(org.apache.maven.doxia.sink.Sink sink,
                         org.apache.maven.doxia.sink.SinkFactory sinkFactory,
                         Locale locale)
                  throws org.apache.maven.reporting.MavenReportException

This method is called when the report generation is invoked by maven-site-plugin.

Specified by:
  `generate` in interface `org.apache.maven.reporting.MavenMultiPageReport`
Parameters:
  `sink` -
  `sinkFactory` -
  `locale` -
Throws:
  `MavenReportException`

#### getCategoryName

    public String getCategoryName()

Specified by:
  `getCategoryName` in interface `org.apache.maven.reporting.MavenReport`
Returns:
  CATEGORY_PROJECT_REPORTS

#### getReportOutputDirectory

    public File getReportOutputDirectory()

Specified by:
  `getReportOutputDirectory` in interface `org.apache.maven.reporting.MavenReport`

#### setReportOutputDirectory

    public void setReportOutputDirectory(File reportOutputDirectory)

Specified by:
  `setReportOutputDirectory` in interface `org.apache.maven.reporting.MavenReport`

#### getOutputDirectory

    protected String getOutputDirectory()

#### getProject

    protected org.apache.maven.project.MavenProject getProject()

#### getSiteRenderer

    protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()

#### getInputEncoding

    protected String getInputEncoding()

Gets the input files encoding.

Returns:
  The input files encoding, never `null`.

#### getOutputEncoding

    protected String getOutputEncoding()

Gets the effective reporting output files encoding.

Returns:
  The effective reporting output file encoding, never `null`.

#### closeReport

    protected void closeReport()

Actions when closing the report.

#### getSink

    public org.apache.maven.doxia.sink.Sink getSink()

Returns:
  the sink used

#### getSinkFactory

    public org.apache.maven.doxia.sink.SinkFactory getSinkFactory()

Returns:
  the sink factory used

#### isExternalReport

    public boolean isExternalReport()

Specified by:
  `isExternalReport` in interface `org.apache.maven.reporting.MavenReport`
Returns:
  `false` by default.
See Also:
  `MavenReport.isExternalReport()`

#### canGenerateReport

    public boolean canGenerateReport()

Specified by:
  `canGenerateReport` in interface `org.apache.maven.reporting.MavenReport`

#### executeReport

    protected abstract void executeReport(Locale locale)
                                   throws org.apache.maven.reporting.MavenReportException

Execute the generation of the report.

Parameters:
  `locale` - the wanted locale to return the report's description, could be `null`.
Throws:
  `MavenReportException` - if any