## org.jfree.report.flow.layoutprocessor
Class AbstractLayoutController

    java.lang.Object
      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: