Class 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 Detail

      • DocumentPool

        public DocumentPool()
    • Method Detail

      • 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