Class DocumentPool

java.lang.Object
net.sf.saxon.om.DocumentPool

public final class DocumentPool extends Object
An object representing the collection of documents handled during a single transformation.

The function of allocating document numbers is performed by the DocumentNumberAllocator in the Configuration, not by the DocumentPool. This has a number of effects: in particular it allows operations involving multiple documents (such as generateId() and document()) to occur in a free-standing XPath environment.

  • Constructor Details

    • DocumentPool

      public DocumentPool()
  • Method Details

    • add

      public void add(TreeInfo doc, String uri) throws XPathException
      Add a document to the pool
      Parameters:
      doc - The DocumentInfo for the document in question
      uri - The document-uri property of the document.
      Throws:
      XPathException - if an error is detected
    • add

      public void add(TreeInfo doc, DocumentKey uri) throws XPathException
      Add a document to the pool
      Parameters:
      doc - The DocumentInfo for the document in question
      uri - The document-uri property of the document.
      Throws:
      XPathException - if an error is detected
    • find

      public TreeInfo find(String uri)
      Get the document with a given document-uri
      Parameters:
      uri - The document-uri property of the document.
      Returns:
      the DocumentInfo with the given document-uri property if it exists, or null if it is not found.
    • find

      public TreeInfo find(DocumentKey uri)
      Get the document with a given document-uri
      Parameters:
      uri - The document-uri property of the document.
      Returns:
      the DocumentInfo with the given document-uri property if it exists, or null if it is not found.
    • getDocumentURI

      public String getDocumentURI(NodeInfo doc)
      Get the URI for a given document node, if it is present in the pool. This supports the document-uri() function.
      Parameters:
      doc - The document node
      Returns:
      The uri of the document node, if present in the pool, or the systemId of the document node otherwise
    • contains

      public boolean contains(TreeInfo doc)
      Determine whether a given document is present in the pool
      Parameters:
      doc - the document being sought
      Returns:
      true if the document is present, false otherwise
    • discard

      public TreeInfo discard(TreeInfo doc)
      Release a document from the document pool. This means that if the same document is loaded again later, the source will need to be re-parsed, and nodes will get new identities.
      Parameters:
      doc - the document to be discarded from the pool
      Returns:
      the document supplied in the doc parameter
    • discardIndexes

      public void discardIndexes(KeyManager keyManager)
      Release all indexs for documents in this pool held by the KeyManager
      Parameters:
      keyManager - the keymanager from which indexes are to be released
    • markUnavailable

      public void markUnavailable(DocumentKey uri)
      Add a document URI to the set of URIs known to be unavailable (because doc-available() has returned false
      Parameters:
      uri - the URI of the unavailable document
    • isMarkedUnavailable

      public boolean isMarkedUnavailable(DocumentKey uri)
      Ask whether a document URI is in the set of URIs known to be unavailable, because doc-available() has been previously called and has returned false
      Parameters:
      uri - the document-uri property of the document
      Returns:
      true if the document is known to be unavailable, false otherwise