com.jrefinery.report.targets.pageable
Class ReportStateList

java.lang.Object
  |
  +--com.jrefinery.report.targets.pageable.ReportStateList

public class ReportStateList
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
ReportStateList(PageableReportProcessor proc)
          Creates a new reportstatelist.
 
Method Summary
 void add(ReportState state)
          Adds this report state to the end of the list.
 void clear()
          Removes all elements in the list.
 ReportState get(int index)
          Retrieves the element on position index in this list.
 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

ReportStateList

public ReportStateList(PageableReportProcessor proc)
                throws OutputTargetException
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:
OutputTargetException - if there is a problem with the output target.
java.lang.NullPointerException - if the report processor is null.
Method Detail

size

public int size()
Returns the number of elements in this list.

Returns:
the number of elements in the list.

add

public void add(ReportState 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 ReportState get(int index)
Retrieves the element on position index in this list.

Parameters:
index - the index.
Returns:
the report state.