Package org.jfree.report.flow.layoutprocessor

# Class AbstractLayoutController

java.lang.Object
org.jfree.report.flow.layoutprocessor.AbstractLayoutController

All Implemented Interfaces:
  `Cloneable`, `LayoutController`

Direct Known Subclasses:
  `BufferingLayoutController`, `StaticTextLayoutController`

public abstract class AbstractLayoutController extends Object implements LayoutController
Todo: Document me!

Since:
  05.03.2007
Author:
  Thomas Morgner

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractLayoutController()`

## Method Summary

Modifier and Type
Method
Description
`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()`
`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()`

### 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 Details

### AbstractLayoutController

protected AbstractLayoutController()

## Method Details

### 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.

### clone

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

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

### getFlowController

public FlowController getFlowController()

Specified by:
  `getFlowController` in interface `LayoutController`

### getNode

public 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: