Package org.jboss.logging.processor.apt.report

## Class ReportWriter

- java.lang.Object
- - org.jboss.logging.processor.apt.report.ReportWriter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

    public abstract class ReportWriter
    extends Object
    implements Closeable

Writes reports based on a `MessageInterface`. These reports could be used for documented messages from logging or message bundle interfaces.

Author:
  James R. Perkins

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`static ReportWriter` `of​(ReportType reportType, MessageInterface messageInterface, BufferedWriter writer)` Creates a new report writer based on the report type.
`abstract void` `writeDetail​(MessageMethod messageMethod)` Writes a detail line for the report.
`abstract void` `writeFooter​()` Writes the footer for the report.
`abstract void` `writeHeader​(String title)` Writes the header for the report.

### Methods inherited from interface java.io.Closeable

`close`

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

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

### Method Detail

#### of

    public static ReportWriter of​(ReportType reportType,
                                  MessageInterface messageInterface,
                                  BufferedWriter writer)

Creates a new report writer based on the report type.

Parameters:
  `reportType` - the report type to create the writer for
  `writer` - the used to write the contents to
Returns:
  the report writer to use
Throws:
  `IllegalStateException` - if there was an error creating the report writer
  `IllegalArgumentException` - if the `reportType` is invalid

#### writeHeader

    public abstract void writeHeader​(String title)
                              throws IOException

Writes the header for the report.

Parameters:
  `title` - the title of the header
Throws:
  `IOException` - if an I/O error occurs

#### writeDetail

    public abstract void writeDetail​(MessageMethod messageMethod)
                              throws IOException

Writes a detail line for the report.

Parameters:
  `messageMethod` - the method to write the details for
Throws:
  `IOException` - if an I/O error occurs

#### writeFooter

    public abstract void writeFooter​()
                              throws IOException

Writes the footer for the report.

Throws:
  `IOException` - if an I/O error occurs