org.jfree.report.flow.layoutprocessor
Class AbstractLayoutController

java.lang.Object
  extended by org.jfree.report.flow.layoutprocessor.AbstractLayoutController
All Implemented Interfaces:
java.lang.Cloneable, LayoutController
Direct Known Subclasses:
BufferingLayoutController, StaticTextLayoutController

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

Todo: Document me!

Since:
05.03.2007
Author:
Thomas Morgner

Constructor Summary
protected AbstractLayoutController()
           
 
Method Summary
 java.lang.Object clone()
          Creates a copy of this layout controller.
 LayoutController createPrecomputeInstance(FlowController fc)
          Derives a copy of this controller that is suitable to perform a precomputation.
 FlowController getFlowController()
           
 java.lang.Object getNode()
           
 LayoutController getParent()
          Retrieves the parent of this layout controller.
 void initialize(java.lang.Object node, FlowController flowController, LayoutController parent)
          Initializes the layout controller.
 boolean isInitialized()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jfree.report.flow.layoutprocessor.LayoutController
advance, isAdvanceable, join
 

Constructor Detail

AbstractLayoutController

protected AbstractLayoutController()
Method Detail

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(java.lang.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.

clone

public java.lang.Object clone()
Description copied from interface: LayoutController
Creates a copy of this layout controller.

Specified by:
clone in interface LayoutController
Overrides:
clone in class java.lang.Object
Returns:
a copy.

getFlowController

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

getNode

public java.lang.Object getNode()
Specified by:
getNode in interface LayoutController

isInitialized

public boolean isInitialized()

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: