org.jfree.report.flow.layoutprocessor

Class BufferingLayoutController

public abstract class BufferingLayoutController extends AbstractLayoutController

Todo: Document me!

Since: 05.03.2007

Author: Thomas Morgner

Constructor Summary
protected BufferingLayoutController()
Method Summary
LayoutControlleradvance(ReportTarget target)
Advances the processing position.
Objectclone()
protected abstract LayoutControllergetInitialDelegate()
voidinitialize(Object node, FlowController flowController, LayoutController parent)
Initializes the layout controller.
booleanisAdvanceable()
LayoutControllerjoin(FlowController flowController)
Joins with a delegated process flow.
protected LayoutControllerjoinWithParent()
Joins the layout controller with the parent.

Constructor Detail

BufferingLayoutController

protected BufferingLayoutController()

Method Detail

advance

public LayoutController advance(ReportTarget target)
Advances the processing position.

Parameters: target the report target that receives generated events.

Returns: the new layout controller instance representing the new state.

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.

clone

public Object clone()

getInitialDelegate

protected abstract LayoutController getInitialDelegate()

initialize

public void initialize(Object node, FlowController flowController, LayoutController parent)
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.

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.

isAdvanceable

public boolean isAdvanceable()

join

public LayoutController join(FlowController flowController)
Joins with a delegated process flow. This is generally called from a child flow and should *not* (I mean it!) be called from outside. If you do, you'll suffer.

Parameters: flowController the flow controller of the parent.

Returns: the joined layout controller that incorperates all changes from the delegate.

joinWithParent

protected LayoutController joinWithParent()
Joins the layout controller with the parent. This simply calls join on the parent. A join operation is necessary to propagate changes in the flow-controller to the parent for further processing.

Returns: the joined parent.

Throws: IllegalStateException if this layout controller has no parent. org.jfree.report.ReportProcessingException org.jfree.report.ReportDataFactoryException org.jfree.report.DataSourceException