org.pentaho.reporting.engine.classic.core.function
Interface OutputFunction

All Superinterfaces:
Cloneable, EventListener, Expression, Function, ReportListener, Serializable
All Known Implementing Classes:
CSVWriter, DefaultOutputFunction, XMLWriter

public interface OutputFunction
extends Function

A simple tagging interface for the transition from function-based layouting back to explicit layouting. Output functions are always considered internal information, so there is no way to write a report-processor that is not aware of the actual implementation of the output-function.

Author:
Thomas Morgner

Method Summary
 void clearInlineSubreports(SubReportProcessType processType)
           
 boolean createRollbackInformation()
           
 OutputFunction deriveForPagebreak()
          Creates a cheaper version of the deep-copy of the output function.
 OutputFunction deriveForStorage()
          Creates a storage-copy of the output function.
 InlineSubreportMarker[] getInlineSubreports()
           
 void restart(ReportState state)
           
 
Methods inherited from interface org.pentaho.reporting.engine.classic.core.event.ReportListener
groupFinished, groupStarted, itemsAdvanced, itemsFinished, itemsStarted, reportDone, reportFinished, reportInitialized, reportStarted
 
Methods inherited from interface org.pentaho.reporting.engine.classic.core.function.Expression
clone, getDataRow, getDependencyLevel, getInstance, getName, getReportConfiguration, getResourceBundleFactory, getRuntime, getValue, isActive, isDeepTraversing, isPreserve, setDependencyLevel, setName, setRuntime
 

Method Detail

deriveForStorage

OutputFunction deriveForStorage()
Creates a storage-copy of the output function. A storage copy must create a deep clone of all referenced objects so that it is guaranteed that changes to either the original or the clone do not affect the other instance.

Any failure to implement this method correctly will be a great source of very subtle bugs.

Returns:
the deep clone.

deriveForPagebreak

OutputFunction deriveForPagebreak()
Creates a cheaper version of the deep-copy of the output function. A pagebreak-derivate is created on every possible pagebreak position and must contain all undo/rollback information to restore the state of any shared object when a roll-back is requested.

Any failure to implement this method correctly will be a great source of very subtle bugs.

Returns:
the deep clone.

getInlineSubreports

InlineSubreportMarker[] getInlineSubreports()

clearInlineSubreports

void clearInlineSubreports(SubReportProcessType processType)

restart

void restart(ReportState state)
             throws ReportProcessingException
Throws:
ReportProcessingException

createRollbackInformation

boolean createRollbackInformation()