org.jfree.report.flow.layoutprocessor

Class AbstractLayoutController

Implemented Interfaces:
Cloneable, LayoutController
Known Direct Subclasses:
BufferingLayoutController, StaticTextLayoutController

public abstract class AbstractLayoutController
extends java.lang.Object
implements LayoutController

Todo: Document me!
Author:
Thomas Morgner
Since:
05.03.2007

Constructor Summary

AbstractLayoutController()

Method Summary

Object
clone()
LayoutController
createPrecomputeInstance(FlowController fc)
Derives a copy of this controller that is suitable to perform a precomputation.
FlowController
getFlowController()
Object
getNode()
LayoutController
getParent()
Retrieves the parent of this layout controller.
void
initialize(Object node, FlowController flowController, LayoutController parent)
Initializes the layout controller.
boolean
isInitialized()

Constructor Details

AbstractLayoutController

protected AbstractLayoutController()

Method Details

clone

public Object clone()
Specified by:
clone in interface LayoutController

createPrecomputeInstance

public LayoutController createPrecomputeInstance(FlowController fc)
Derives a copy of this controller that is suitable to perform a precomputation.
Specified by:
createPrecomputeInstance in interface LayoutController
Parameters:
fc -
Returns:

getFlowController

public FlowController getFlowController()
Specified by:
getFlowController in interface LayoutController

getNode

public Object getNode()
Specified by:
getNode in interface LayoutController

getParent

public LayoutController getParent()
Retrieves the parent of this layout controller. This allows childs to query their context.
Specified by:
getParent in interface LayoutController
Returns:
the layout controller's parent to null if there is no parent.

initialize

public void initialize(Object node,
                       FlowController flowController,
                       LayoutController parent)
            throws DataSourceException,
                   ReportDataFactoryException,
                   ReportProcessingException
Initializes the layout controller. This method is called exactly once. It is the creators responsibility to call this method.

Calling initialize after the first advance must result in a IllegalStateException.

Specified by:
initialize in interface LayoutController
Parameters:
node - the currently processed object or layout node.
flowController - the current flow controller.
parent - the parent layout controller that was responsible for instantiating this controller.
Throws:
DataSourceException - if there was a problem reading data from the datasource.
ReportProcessingException - if there was a general problem during the report processing.
ReportDataFactoryException - if a query failed.

isInitialized

public boolean isInitialized()