Class DefaultPageStateList

  • All Implemented Interfaces:
    PageStateList

    public class DefaultPageStateList
    extends Object
    implements PageStateList
    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 Detail

      • DefaultPageStateList

        public DefaultPageStateList​(ReportProcessor 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:
        NullPointerException - if the report processor is null.
    • Method Detail

      • size

        public int size()
        Returns the number of elements in this list.
        Specified by:
        size in interface PageStateList
        Returns:
        the number of elements in the list.
      • add

        public void add​(PageState pageState)
        Adds this report state to the end of the list.
        Specified by:
        add in interface PageStateList
        Parameters:
        pageState - the report state.
      • set

        protected void set​(int index,
                           org.pentaho.reporting.engine.classic.core.layout.output.DefaultPageStateList.InternalStorageState state)
      • clear

        public void clear()
        Removes all elements in the list.
        Specified by:
        clear in interface PageStateList
      • get

        public PageState get​(int index)
        Retrieves the element on position index in this list.
        Specified by:
        get in interface PageStateList
        Parameters:
        index - the index.
        Returns:
        the report state.