Class ResourceTracker

java.lang.Object
org.apache.xmlgraphics.ps.dsc.ResourceTracker

public class ResourceTracker extends Object
This class is used to track resources in a DSC-compliant PostScript file. The distinction is made between supplied and needed resources. For the details of this distinction, please see the DSC specification.
  • Constructor Details

    • ResourceTracker

      public ResourceTracker()
  • Method Details

    • getDocumentSuppliedResources

      public Set getDocumentSuppliedResources()
      Returns the set of supplied resources.
      Returns:
      the set of supplied resources
    • getDocumentNeededResources

      public Set getDocumentNeededResources()
      Returns the set of needed resources.
      Returns:
      the set of needed resources
    • notifyStartNewPage

      public void notifyStartNewPage()
      Notifies the resource tracker that a new page has been started and that the page resource set can be cleared.
    • registerSuppliedResource

      public void registerSuppliedResource(PSResource res)
      Registers a supplied resource. If the same resources is already in the set of needed resources, it is removed there.
      Parameters:
      res - the resource
    • registerNeededResource

      public void registerNeededResource(PSResource res)
      Registers a needed resource. If the same resources is already in the set of supplied resources, it is ignored, i.e. it is assumed to be supplied.
      Parameters:
      res - the resource
    • notifyResourceUsageOnPage

      public void notifyResourceUsageOnPage(PSResource res)
      Notifies the resource tracker about the usage of a resource on the current page.
      Parameters:
      res - the resource being used
    • notifyResourceUsageOnPage

      public void notifyResourceUsageOnPage(Collection resources)
      Notifies the resource tracker about the usage of resources on the current page.
      Parameters:
      resources - the resources being used
    • isResourceSupplied

      public boolean isResourceSupplied(PSResource res)
      Indicates whether a particular resource is supplied, rather than needed.
      Parameters:
      res - the resource
      Returns:
      true if the resource is registered as being supplied.
    • writeResources

      public void writeResources(boolean pageLevel, PSGenerator gen) throws IOException
      Writes a DSC comment for the accumulated used resources, either at page level or at document level.
      Parameters:
      pageLevel - true if the DSC comment for the page level should be generated, false for the document level (in the trailer)
      gen - the PSGenerator to write the DSC comments with
      Throws:
      IOException - In case of an I/O problem
    • writePageResources

      public void writePageResources(PSGenerator gen) throws IOException
      Writes a DSC comment for the accumulated used resources on the current page. Then it commits all those resources to the used resources on document level.
      Parameters:
      gen - the PSGenerator to write the DSC comments with
      Throws:
      IOException - In case of an I/O problem
    • writeDocumentResources

      public void writeDocumentResources(PSGenerator gen) throws IOException
      Writes a DSC comment for the needed and supplied resourced for the current DSC document.
      Parameters:
      gen - the PSGenerator to write the DSC comments with
      Throws:
      IOException - In case of an I/O problem
    • declareInlined

      public void declareInlined(PSResource res)
      This method declares that the given resource will be inlined and can therefore be removed from resource tracking. This is useful when you don't know beforehand if a resource will be used multiple times. If it's only used once it's better to inline the resource to lower the maximum memory needed inside the PostScript interpreter.
      Parameters:
      res - the resource
    • getUsageCount

      public long getUsageCount(PSResource res)
      Returns the number of times a resource has been used inside the current DSC document.
      Parameters:
      res - the resource
      Returns:
      the number of times the resource has been used