JFR9TermsAndConcepts

Terms and Concepts

ReportJob

A report job contains all data, configuration and layout information, that is needed to complete the report processing.

ReportProcessor

The report processor implementation creates the Flow- and LayoutController, which drive the report processing later. ReportProcessor implementations are frontend classes. User code should not use the backend classes directly.

The report processor implementations collect the report state information and grant semanticly high access to the report states.

FlowController

A flow controler is responsible for the management of the data sources. DataSources are controled using FlowOperations, which are attached to layout elements. Such operations advance the cursor to the next row, save and restore cursor positions, create new data sources. It is also the responsibility of the FlowControler to activate and deactivate expressions and functions and to insert and to remove them into the report data row.

A flow controller is under full control of the LayoutController.

LayoutControler

The layout controler iterates over the report definition and also calls the flow controler when ever needed. In the default model, there is one LayoutController for each report element. LayoutController are created by a central LayoutControllerFactory and controll the report generation for a single element (and possibly all child elements).

ReportTarget

The report target performs the content generation. The report target implementations are responsible to evaluate the style and attributes (and the corresponding style and attribute expressions). A report target is free to ignore attributes and style definitions, if the underlying model does not use such concepts.

Report-Targets separate the report definition and report data processing from the actual content creation.