# Interface OutputReporter

All Superinterfaces:
  `Reporter`

All Known Implementing Classes:
  `JsonOutputReporter, TextOutputReporter`

public interface OutputReporter extends Reporter
Interface for application-level logging of validation messages. This extends the Reporter interface to add support for multiple stages. The design (a single-level hierarchy of reporting stages) is not particularly elegant or general, and may be revised at some point, but it serves the current purposes of the TapLint tool.

Since:
  24 May 2016
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`void`
`end()`
Signals end of reporting.
`void`
`endSection()`
Ends the current section.
`String`
`getSectionCode()`
Returns the section code for the most recently-started section.
`void`
`start(String[] announcements)`
Signals beginning of reporting.
`void`
`startSection(String scode, String message)`
Begins a reporting section.
`void`
`summariseUnreportedMessages(String scode)`
Writes to the output stream a summary of messages which were suppressed in a given stage because the maximum repeat count was exceeded.

### Methods inherited from interface Reporter

`report, report`

## Method Details

### start

void start(String[] announcements)
Signals beginning of reporting.

Parameters:
  `announcements` - header information about validator operation; plain text, one line per element

### end

void end()
Signals end of reporting.

### startSection

void startSection(String scode, String message)
Begins a reporting section.

Parameters:
  `scode` - short fixed-length (3-char?) identifier for the section about to start
  `message` - terse (one-line) free-text description of the stage

### getSectionCode

String getSectionCode()
Returns the section code for the most recently-started section.

Returns:
  current section code

### summariseUnreportedMessages

void summariseUnreportedMessages(String scode)
Writes to the output stream a summary of messages which were suppressed in a given stage because the maximum repeat count was exceeded.

Parameters:
  `scode` - section code to summarise; if null, no stage filtering is done

### endSection

void endSection()
Ends the current section.