E
- class of the report objectpublic class ReportTree<E extends DataObject<E>>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
ReportTree.Consolidator<E extends DataObject<E>>
function to consolidate data from the child to the parent of the report node
|
static interface |
ReportTree.Enricher<E extends DataObject<E>> |
static interface |
ReportTree.Initiator<E extends DataObject<E>>
feature to initiate a new report object
|
static interface |
ReportTree.Namesetter<E extends DataObject<E>>
function to set the name on the report object
|
static interface |
ReportTree.ValueExtractor<E extends DataObject<E>,F>
Extracts a value from the report object
|
static interface |
ReportTree.ValueSetter<E extends DataObject<E>,F>
a function to set a value to the report object
|
Constructor and Description |
---|
ReportTree(DataObjectDefinition<E> objectdefinition,
ReportTree.Namesetter<E> namesetter,
ReportTree.ValueExtractor<E,java.lang.String> nameextractor,
ReportTree.Consolidator<E>[] consolidators,
ReportTree.Initiator<E> initiator,
java.lang.String rootname)
creates a new report tree
|
ReportTree(DataObjectDefinition<E> objectdefinition,
ReportTree.Namesetter<E> namesetter,
ReportTree.ValueExtractor<E,java.lang.String> nameextractor,
ReportTree.Consolidator<E>[] consolidators,
java.lang.String rootname)
creates a new report tree
|
ReportTree(DataObjectDefinition<E> objectdefinition,
ReportTree.Namesetter<E> namesetter,
ReportTree.ValueExtractor<E,java.lang.String> nameextractor,
ReportTree.Consolidator<E> uniqueconsolidator,
ReportTree.Initiator<E> initiator,
java.lang.String rootname)
creates a new report tree
|
ReportTree(DataObjectDefinition<E> objectdefinition,
ReportTree.Namesetter<E> namesetter,
ReportTree.ValueExtractor<E,java.lang.String> nameextractor,
ReportTree.Consolidator<E> uniqueconsolidator,
java.lang.String rootname)
creates a new report tree
|
Modifier and Type | Method and Description |
---|---|
void |
addNode(java.lang.String[] parentlabels,
E node)
This method will add the given object as a node if it has a label.
|
static java.math.BigDecimal |
divideIfNotNull(java.math.BigDecimal first,
java.math.BigDecimal second)
a robust division utility (manages null the way it is expected in a
spreadsheet)
|
NodeTree<E> |
generateNodeTree(DataObjectDefinition<E> objectdefinition) |
static java.math.BigDecimal |
multiplyIfNotNull(java.math.BigDecimal first,
java.math.BigDecimal second)
a robust product utility (manages null the way it is expected in a
spreadsheet)
|
static java.lang.String |
printBigDecimal(java.math.BigDecimal decimal)
default print of a big decimal
|
static java.lang.String |
printBigDecimal(java.math.BigDecimal decimal,
int scale)
prints the big decimal wih the given scale
|
static java.lang.String |
printBigDecimal(java.math.BigDecimal decimal,
int scale,
java.lang.String displayifnull)
prints a big decimal with the given scale (rounding half-down)
|
static java.lang.String |
printBigDecimal(java.math.BigDecimal decimal,
java.lang.String displayifnull)
prints a big decimal
|
static java.math.BigDecimal |
sumIfNotNull(java.math.BigDecimal first,
java.math.BigDecimal second)
a robust sum utility (manages null the way it is expected in a spreadsheet)
|
static <E extends DataObject<E>> |
sumInparent(E parent,
java.math.BigDecimal childvalue,
ReportTree.ValueExtractor<E,java.math.BigDecimal> extractor,
ReportTree.ValueSetter<E,java.math.BigDecimal> setter)
sums a hard coded value into the parent
|
static <E extends DataObject<E>> |
sumInparent(E parent,
E child,
ReportTree.ValueExtractor<E,java.math.BigDecimal> extractor,
ReportTree.ValueSetter<E,java.math.BigDecimal> setter)
Sums a valuein parent
|
public ReportTree(DataObjectDefinition<E> objectdefinition, ReportTree.Namesetter<E> namesetter, ReportTree.ValueExtractor<E,java.lang.String> nameextractor, ReportTree.Consolidator<E>[] consolidators, ReportTree.Initiator<E> initiator, java.lang.String rootname)
objectdefinition
- definition of the object in the report treenamesetter
- utility to set name on objectnameextractor
- utility to get name on objectconsolidator
- list of data consolidatorsinitiator
- initiator to set the root noderootname
- root node namepublic ReportTree(DataObjectDefinition<E> objectdefinition, ReportTree.Namesetter<E> namesetter, ReportTree.ValueExtractor<E,java.lang.String> nameextractor, ReportTree.Consolidator<E>[] consolidators, java.lang.String rootname)
objectdefinition
- definition of the object in the report treenamesetter
- utility to set name on objectconsolidator
- data consolidatorsrootname
- root node namepublic ReportTree(DataObjectDefinition<E> objectdefinition, ReportTree.Namesetter<E> namesetter, ReportTree.ValueExtractor<E,java.lang.String> nameextractor, ReportTree.Consolidator<E> uniqueconsolidator, ReportTree.Initiator<E> initiator, java.lang.String rootname)
objectdefinition
- definition of the object in the report treenamesetter
- utility to set name on objectnameextractor
- utility to get name on objectuniqueconsolidator
- unique consolidatorinitiator
- initiator to set the root noderootname
- root node namepublic ReportTree(DataObjectDefinition<E> objectdefinition, ReportTree.Namesetter<E> namesetter, ReportTree.ValueExtractor<E,java.lang.String> nameextractor, ReportTree.Consolidator<E> uniqueconsolidator, java.lang.String rootname)
objectdefinition
- definition of the object in the report treenamesetter
- utility to set name on objectconsolidator
- data consolidatorsrootname
- root node namepublic static java.math.BigDecimal sumIfNotNull(java.math.BigDecimal first, java.math.BigDecimal second)
first
- first elementsecond
- second elementpublic static java.math.BigDecimal multiplyIfNotNull(java.math.BigDecimal first, java.math.BigDecimal second)
first
- first elementsecond
- second elementpublic static java.math.BigDecimal divideIfNotNull(java.math.BigDecimal first, java.math.BigDecimal second)
first
- first elementsecond
- second elementpublic static java.lang.String printBigDecimal(java.math.BigDecimal decimal, java.lang.String displayifnull)
decimal
- big decimaldisplayifnull
- what to show if Big Decimal is nullpublic static java.lang.String printBigDecimal(java.math.BigDecimal decimal)
decimal
- decimalpublic static java.lang.String printBigDecimal(java.math.BigDecimal decimal, int scale, java.lang.String displayifnull)
decimal
- big decimalscale
- scaledisplayifnull
- display for nullpublic static java.lang.String printBigDecimal(java.math.BigDecimal decimal, int scale)
decimal
- decimalscale
- scalepublic static <E extends DataObject<E>> void sumInparent(E parent, E child, ReportTree.ValueExtractor<E,java.math.BigDecimal> extractor, ReportTree.ValueSetter<E,java.math.BigDecimal> setter)
parent
- parent element of the report treechild
- child element of the report treeextractor
- extractor of the value on the objectsetter
- setter of the value on the objectpublic static <E extends DataObject<E>> void sumInparent(E parent, java.math.BigDecimal childvalue, ReportTree.ValueExtractor<E,java.math.BigDecimal> extractor, ReportTree.ValueSetter<E,java.math.BigDecimal> setter)
parent
- parent elementchildvalue
- child value to sumextractor
- extractor of the value on the objectsetter
- setter of the value on the objectpublic void addNode(java.lang.String[] parentlabels, E node)
parentlabels
- the parents, excluding root nodenode
- the node to add as child to the last parent in the parent
labels arraypublic NodeTree<E> generateNodeTree(DataObjectDefinition<E> objectdefinition)
objectdefinition
-