IDTracker (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.area

## 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 Summary

    Constructors
    Constructor and Description
    `IDTracker()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addUnresolvedIDRef(String idref, Resolvable res)` Add an Resolvable object with an unresolved idref
    `boolean` | `alreadyResolvedID(String id)` Check if an ID has already been resolved
    `void` | `associateIDWithPageViewport(String id, PageViewport pv)` Tie a PageViewport with an ID found on a child area of the PV.
    `PageViewport` | `getFirstPageViewportContaining(String id)` Get the first `PageViewport` containing content generated by the FO with the given `id`.
    `PageViewport` | `getLastPageViewportContaining(String id)` Get the last `PageViewport` containing content generated by the FO with the given `id`.
    `List<PageViewport>` | `getPageViewportsContainingID(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(String id)` Signals that all areas for the formatting object with the given ID have been generated.
    `void` | `signalPendingID(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(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

Copyright © 2025 Apache Software Foundation. All rights reserved.