|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.pentaho.reporting.engine.classic.core.states.datarow.PaddingDataRow
public class PaddingDataRow
A datarow that acts as padding source. It overrides the columns from either report-data or expressions datarow with values collected by the crosstab-specification. It also provides padding for the advance calls.
There are three padding scenarios that must be covered by this data-row:The crosstab-specification's current cursor position is not at the computed position for the current column key (the column values read from the actual data-row). Therefore the system has to insert fake columns until the cursor has advanced to the current position. As we are effectively duplicating rows, this may lead to corrupted data if we duplicate non-group-columns.
After an advance, the computed column-key position is greater than the current cursor position. Therefore the system has to insert fake data until the positions match again.
If the advance would trigger a group-break, check whether the current cursor position is already at the end of the columns list. If not, stay on the current row and insert as many fake rows as needed.
Constructor Summary | |
---|---|
PaddingDataRow(CrosstabSpecification crosstabSpecification)
|
|
PaddingDataRow(PaddingDataRow dataRow)
|
Method Summary | |
---|---|
void |
activate(MasterDataRow dataRow)
|
PaddingDataRow |
advance()
|
int |
getCrosstabColumnCount()
|
int |
getCurrentCursorPosition()
|
int |
getPostPaddingRows(DataRow globalView)
After an advance, do we have to delay the advance and insert some extra rows? If we delay, then the advance has to be undone and we have to get marked for either case2 or case3. |
int |
getPrePaddingRows(DataRow globalView)
Do we need a case1 padding? |
PaddingDataRow |
resetRowCursor()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PaddingDataRow(PaddingDataRow dataRow)
public PaddingDataRow(CrosstabSpecification crosstabSpecification)
Method Detail |
---|
public int getPrePaddingRows(DataRow globalView)
globalView
-
public int getCurrentCursorPosition()
public int getCrosstabColumnCount()
public int getPostPaddingRows(DataRow globalView)
globalView
-
public PaddingDataRow advance()
public void activate(MasterDataRow dataRow)
public PaddingDataRow resetRowCursor()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |