Package org.apache.xmlgraphics.ps.dsc
Class ResourceTracker
java.lang.Object
org.apache.xmlgraphics.ps.dsc.ResourceTracker
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
declareInlined
(PSResource res) This method declares that the given resource will be inlined and can therefore be removed from resource tracking.Returns the set of needed resources.Returns the set of supplied resources.long
getUsageCount
(PSResource res) Returns the number of times a resource has been used inside the current DSC document.boolean
Indicates whether a particular resource is supplied, rather than needed.void
notifyResourceUsageOnPage
(Collection resources) Notifies the resource tracker about the usage of resources on the current page.void
Notifies the resource tracker about the usage of a resource on the current page.void
Notifies the resource tracker that a new page has been started and that the page resource set can be cleared.void
Registers a needed resource.void
Registers a supplied resource.void
Writes a DSC comment for the needed and supplied resourced for the current DSC document.void
Writes a DSC comment for the accumulated used resources on the current page.void
writeResources
(boolean pageLevel, PSGenerator gen) Writes a DSC comment for the accumulated used resources, either at page level or at document level.
-
Constructor Details
-
ResourceTracker
public ResourceTracker()
-
-
Method Details
-
getDocumentSuppliedResources
Returns the set of supplied resources.- Returns:
- the set of supplied resources
-
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
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
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
Notifies the resource tracker about the usage of a resource on the current page.- Parameters:
res
- the resource being used
-
notifyResourceUsageOnPage
Notifies the resource tracker about the usage of resources on the current page.- Parameters:
resources
- the resources being used
-
isResourceSupplied
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
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
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
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
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
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
-