Class IDTracker

java.lang.Object
org.apache.fop.area.IDTracker

public class IDTracker extends Object
Used by the AreaTreeHandler to keep track of ID reference usage on a PageViewport level.
  • Constructor Details

    • IDTracker

      public IDTracker()
  • Method Details

    • associateIDWithPageViewport

      public void associateIDWithPageViewport(String id, PageViewport pv)
      Tie a PageViewport with an ID found on a child area of the PV. Note that an area with a given ID may be on more than one PV, hence an ID may have more than one PV associated with it.
      Parameters:
      id - the property ID of the area
      pv - a page viewport that contains the area with this ID
    • signalPendingID

      public void signalPendingID(String id)
      This method tie an ID to the areaTreeHandler until this one is ready to be processed. This is used in page-number-citation-last processing so we know when an id can be resolved.
      Parameters:
      id - the id of the object being processed
    • signalIDProcessed

      public void signalIDProcessed(String id)
      Signals that all areas for the formatting object with the given ID have been generated. This is used to determine when page-number-citation-last ref-ids can be resolved.
      Parameters:
      id - the id of the formatting object which was just finished
    • alreadyResolvedID

      public boolean alreadyResolvedID(String id)
      Check if an ID has already been resolved
      Parameters:
      id - the id to check
      Returns:
      true if the ID has been resolved
    • tryIDResolution

      public void tryIDResolution(PageViewport pv)
      Tries to resolve all unresolved ID references on the given page.
      Parameters:
      pv - page viewport whose ID refs to resolve
    • getPageViewportsContainingID

      public List<PageViewport> getPageViewportsContainingID(String id)
      Get the list of page viewports that have an area with a given id.
      Parameters:
      id - the id to lookup
      Returns:
      the list of PageViewports
    • getFirstPageViewportContaining

      public PageViewport getFirstPageViewportContaining(String id)
      Get the first PageViewport containing content generated by the FO with the given id.
      Parameters:
      id - the id
      Returns:
      the first PageViewport for the id; null if no matching PageViewport was found
    • getLastPageViewportContaining

      public PageViewport getLastPageViewportContaining(String id)
      Get the last PageViewport containing content generated by the FO with the given id.
      Parameters:
      id - the id
      Returns:
      the last PageViewport for the id; null if no matching PageViewport was found
    • addUnresolvedIDRef

      public void addUnresolvedIDRef(String idref, Resolvable res)
      Add an Resolvable object with an unresolved idref
      Parameters:
      idref - the idref whose target id has not yet been located
      res - the Resolvable object needing the idref to be resolved
    • replacePageViewPort

      public void replacePageViewPort(PageViewport oldPageViewPort, PageViewport newPageViewPort)
      Replace all id locations pointing to the old page view port with a new one. This is necessary when a layouted page is replaced with a new one (e.g. last page handling).
      Parameters:
      oldPageViewPort - old page view port
      newPageViewPort - new page view port