net.sf.saxon.om
Class DocumentPool

java.lang.Object
  extended by net.sf.saxon.om.DocumentPool
All Implemented Interfaces:
Serializable

public final class DocumentPool
extends Object
implements Serializable

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.

See Also:
Serialized Form

Constructor Summary
DocumentPool()
           
 
Method Summary
 void add(DocumentInfo doc, DocumentURI uri)
          Add a document to the pool
 void add(DocumentInfo doc, String uri)
          Add a document to the pool
 boolean contains(DocumentInfo doc)
          Determine whether a given document is present in the pool
 DocumentInfo discard(DocumentInfo doc)
          Release a document from the document pool.
 DocumentInfo find(DocumentURI uri)
          Get the document with a given document-uri
 DocumentInfo find(String uri)
          Get the document with a given document-uri
 String getDocumentURI(NodeInfo doc)
          Get the URI for a given document node, if it is present in the pool.
 boolean isMarkedUnavailable(DocumentURI 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
 void markUnavailable(DocumentURI uri)
          Add a document URI to the set of URIs known to be unavailable (because doc-available() has returned false
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DocumentPool

public DocumentPool()
Method Detail

add

public void add(DocumentInfo doc,
                String uri)
Add a document to the pool

Parameters:
doc - The DocumentInfo for the document in question
uri - The document-uri property of the document.

add

public void add(DocumentInfo doc,
                DocumentURI uri)
Add a document to the pool

Parameters:
doc - The DocumentInfo for the document in question
uri - The document-uri property of the document.

find

public DocumentInfo 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 DocumentInfo find(DocumentURI 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(DocumentInfo 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 DocumentInfo discard(DocumentInfo 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

markUnavailable

public void markUnavailable(DocumentURI 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(DocumentURI 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



Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.