Package 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

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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: