Package org.jfree.report.flow.paginating

## Class PageStateList

- java.lang.Object
- - org.jfree.report.flow.paginating.PageStateList

-     public class PageStateList
      extends java.lang.Object

  The ReportState list stores a report states for the beginning of every page. The list is filled on repagination and read when a report or a page of the report is printed.

  Important: This list stores page start report states, not arbitary report states. These ReportStates are special: they can be reproduced by calling processPage on the report.

  Internally this list is organized as a list of WeakReferenceLists, where every WeakReferenceList stores a certain number of page states. The first 20 states are stored in an ordinary list with strong-references, so these states never get GarbageCollected (and so they must never be restored by reprocessing them). The next 100 states are stored in 4-element ReferenceLists, so if a reference is lost, only 4 states have to be reprocessed. All other states are stored in 10-element lists.
  Author:
    Thomas Morgner

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PageStateList​(PaginatingReportProcessor proc)` | Creates a new reportstatelist.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(PageState state)` | Adds this report state to the end of the list.
    `void` | `clear()` | Removes all elements in the list.
    `PageState` | `get​(int index)` | Retrieves the element on position `index` in this list.
    `protected PaginatingReportProcessor` | `getPageProcess()` |
    `int` | `size()` | Returns the number of elements in this list.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PageStateList

          public PageStateList​(PaginatingReportProcessor proc)

      Creates a new reportstatelist. The list will be filled using the specified report and output target. Filling of the list is done elsewhere.
      Parameters:
        `proc` - the reportprocessor used to restore lost states (null not permitted).
      Throws:
        `java.lang.NullPointerException` - if the report processor is `null`.

  - ### Method Detail

    - #### getPageProcess

          protected PaginatingReportProcessor getPageProcess()

    - #### size

          public int size()

      Returns the number of elements in this list.
      Returns:
        the number of elements in the list.

    - #### add

          public void add​(PageState state)

      Adds this report state to the end of the list.
      Parameters:
        `state` - the report state.

    - #### clear

          public void clear()

      Removes all elements in the list.

    - #### get

          public PageState get​(int index)

      Retrieves the element on position `index` in this list.
      Parameters:
        `index` - the index.
      Returns:
        the report state.