net.sourceforge.pmd.renderers

## Interface Renderer

All Superinterfaces:
  PropertySource

All Known Implementing Classes:
  AbstractAccumulatingRenderer, AbstractIncrementingRenderer, AbstractRenderer, CSVRenderer, EmacsRenderer, HTMLRenderer, IDEAJRenderer, SummaryHTMLRenderer, TextColorRenderer, TextPadRenderer, TextRenderer, VBHTMLRenderer, XMLRenderer, XSLTRenderer, YAHTMLRenderer

    public interface Renderer
    extends PropertySource

This is an interface for rendering a Report. When a Renderer is being invoked, the sequence of method calls is something like the following:

1. Renderer construction/initialization
2. `setShowSuppressedViolations(boolean)`
3. `setWriter(Writer)`
4. `start()`
5. `startFileAnalysis(DataSource)` for each source file processed
6. `renderFileReport(Report)` for each Report instance
7. `end()`

An implementation of the Renderer interface is expected to have a default constructor. Properties should be defined using the `PropertySource.definePropertyDescriptor(net.sourceforge.pmd.PropertyDescriptor)` method. After the instance is created, the property values are set. This means, you won't have access to property values in your constructor.

### Method Summary

Methods
`String` `defaultFileExtension()` Return the default filename extension to use.
`void` `end()` This method is at the very end of the Rendering process, after `renderFileReport(Report)`.
`void` `flush()`
`String` `getDescription()` Get the description of the Renderer.
`String` `getName()` Get the name of the Renderer.
`Map<String,String>` `getPropertyDefinitions()` Deprecated.
`Writer` `getWriter()` Get the Writer for the Renderer.
`boolean` `isShowSuppressedViolations()` Get the indicator for whether to show suppressed violations.
`void` `renderFileReport(Report report)` Render the given file Report.
`void` `setDescription(String description)` Set the description of the Renderer.
`void` `setName(String name)` Set the name of the Renderer.
`void` `setShowSuppressedViolations(boolean showSuppressedViolations)` Set the indicator for whether to show suppressed violations.
`void` `setWriter(Writer writer)` Set the Writer for the Renderer.
`void` `start()` This method is called before any source files are processed.
`void` `startFileAnalysis(DataSource dataSource)` This method is called each time a source file is processed.

### Methods inherited from interface net.sourceforge.pmd.PropertySource

`definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues`

### Method Detail

#### getName

    String getName()

Get the name of the Renderer.

Returns:
  The name of the Renderer.

#### setName

    void setName(String name)

Set the name of the Renderer.

Parameters:
  `name` - The name of the Renderer.

#### getDescription

    String getDescription()

Get the description of the Renderer.

Returns:
  The description of the Renderer.

#### defaultFileExtension

    String defaultFileExtension()

Return the default filename extension to use.

Returns:
  String

#### setDescription

    void setDescription(String description)

Set the description of the Renderer.

Parameters:
  `description` - The description of the Renderer.

#### getPropertyDefinitions

    @Deprecated
    Map<String,String> getPropertyDefinitions()

Deprecated.
Get the configuration property definitions for Renderer. The keys in the map are the configuration property names, with the corresponding value being a description.

Returns:
  The configuration property definition map.

#### isShowSuppressedViolations

    boolean isShowSuppressedViolations()

Get the indicator for whether to show suppressed violations.

Returns:
  `true` if suppressed violations should show, `false` otherwise.

#### setShowSuppressedViolations

    void setShowSuppressedViolations(boolean showSuppressedViolations)

Set the indicator for whether to show suppressed violations.

Parameters:
  `showSuppressedViolations` - Whether to show suppressed violations.

#### getWriter

    Writer getWriter()

Get the Writer for the Renderer.

Returns:
  The Writer.

#### setWriter

    void setWriter(Writer writer)

Set the Writer for the Renderer.

Parameters:
  `writer` - The Writer.

#### start

    void start()
               throws IOException

This method is called before any source files are processed. The Renderer will have been fully initialized by the time this method is called, so the Writer and other state will be available.

Throws:
  `IOException`

#### startFileAnalysis

    void startFileAnalysis(DataSource dataSource)

This method is called each time a source file is processed. It is called after `start()`, but before `renderFileReport(Report)` and `end()`. This method may be invoked by different threads which are processing files independently. Therefore, any non-trivial implementation of this method needs to be thread-safe.

Parameters:
  `dataSource` - The source file.

#### renderFileReport

    void renderFileReport(Report report)
                          throws IOException

Render the given file Report. There may be multiple Report instances which need to be rendered if produced by different threads. It is called after `start()` and `startFileAnalysis(DataSource)`, but before `end()`.

Parameters:
  `report` - A file Report.
Throws:
  `IOException`
See Also:
  `Report`

#### end

    void end()
             throws IOException

This method is at the very end of the Rendering process, after `renderFileReport(Report)`.

Throws:
  `IOException`

#### flush

    void flush()
               throws IOException

Throws:
  `IOException`