org.apache.fop.area

## Class IDTracker

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

-     public class IDTracker
      extends java.lang.Object

  Used by the AreaTreeHandler to keep track of ID reference usage on a PageViewport level.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IDTracker()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addUnresolvedIDRef(java.lang.String idref, Resolvable res)` Add an Resolvable object with an unresolved idref
    `boolean` | `alreadyResolvedID(java.lang.String id)` Check if an ID has already been resolved
    `void` | `associateIDWithPageViewport(java.lang.String id, PageViewport pv)` Tie a PageViewport with an ID found on a child area of the PV.
    `PageViewport` | `getFirstPageViewportContaining(java.lang.String id)` Get the first `PageViewport` containing content generated by the FO with the given `id`.
    `PageViewport` | `getLastPageViewportContaining(java.lang.String id)` Get the last `PageViewport` containing content generated by the FO with the given `id`.
    `java.util.List<PageViewport>` | `getPageViewportsContainingID(java.lang.String id)` Get the list of page viewports that have an area with a given id.
    `void` | `replacePageViewPort(PageViewport oldPageViewPort, PageViewport newPageViewPort)` Replace all id locations pointing to the old page view port with a new one.
    `void` | `signalIDProcessed(java.lang.String id)` Signals that all areas for the formatting object with the given ID have been generated.
    `void` | `signalPendingID(java.lang.String id)` This method tie an ID to the areaTreeHandler until this one is ready to be processed.
    `void` | `tryIDResolution(PageViewport pv)` Tries to resolve all unresolved ID references on the given page.

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

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

- - ### Constructor Detail

    - #### IDTracker

          public IDTracker()

  - ### Method Detail

    - #### associateIDWithPageViewport

          public void associateIDWithPageViewport(java.lang.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(java.lang.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(java.lang.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(java.lang.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 java.util.List<PageViewport> getPageViewportsContainingID(java.lang.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(java.lang.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(java.lang.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(java.lang.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

Copyright 1999-2022 The Apache Software Foundation. All Rights Reserved.