Report Node
A sealed hierarchy of format-agnostic AST nodes representing report content.
The tree is assembled by the DSL (ksl.utilities.io.report.dsl.ReportBuilder) and traversed by ReportVisitor implementations (renderers). Each node implements accept for double-dispatch, ensuring compile-time completeness in every renderer.
Structural nodes (recurse into children):
Document — root of the tree; carries the report title
Section — collapsible/titled group of child nodes; may be nested
Content leaf nodes (carry data, no children):
Heading — titled heading at a given level (1–6)
Paragraph — free-form text
StatPropertyTable — vertical
Property | Valuesheet for a single StatisticIfcStatTable — horizontal comparison table for List<StatisticIfc>
WeightedStatPropertyTable— vertical
Property | Valuesheet for a single WeightedStatisticWeightedStatTable — horizontal table for List<WeightedStatistic>
DataTable — general-purpose pre-formatted string table
RawText — verbatim pre-formatted text block
PageBreak — logical page/section separator
Inheritors
Types
The root node of a report document.
A standalone heading at the given level.
A logical page or section separator.
A free-form paragraph of text.
A verbatim pre-formatted text block (analogous to <pre> in HTML).
A titled, collapsible group of child nodes. Sections may be nested to any depth; renderers are responsible for tracking depth and adjusting heading levels accordingly.
A vertical Property | Value property sheet for a single StatisticIfc.
A horizontal summary/comparison table for any List of StatisticIfc instances.
A vertical Property | Value property sheet for a single WeightedStatistic.
A horizontal comparison table for a List of WeightedStatistic instances.