Google

: Class NamePool

com.icl.saxon.om
Class NamePool


java.lang.Object

  |

  +--com.icl.saxon.om.NamePool


public class NamePool
extends java.lang.Object

An object representing a collection of XML names, each containing a Namespace URI, a Namespace prefix, and a local name; plus a collection of namespaces, each consisting of a prefix/URI pair.

The equivalence betweem names depends only on the URI and the local name. The prefix is retained for documentary purposes only: it is useful when reconstructing a document to use prefixes that the user is familiar with.

The NamePool eliminates duplicate names if they have the same prefix, uri, and local part. It retains duplicates if they have different prefixes


Constructor Summary
NamePool()
           
 
Method Summary
 int allocate(java.lang.String prefix, short uriCode, java.lang.String localName)
          Allocate a name from the pool, or a new Name if there is not a matching one there
 int allocate(java.lang.String prefix, java.lang.String uri, java.lang.String localName)
          Allocate a name from the pool, or a new Name if there is not a matching one there
 short allocateCodeForPrefix(java.lang.String prefix)
          Allocate the prefix code for a given Prefix; create one if not found
 short allocateCodeForURI(java.lang.String uri)
          Allocate the uri code for a given URI; create one if not found, unless the namepool is sealed
 int allocateNamespaceCode(int namecode)
          Allocate a namespace code for the prefix/URI of a given namecode
 int allocateNamespaceCode(java.lang.String prefix, java.lang.String uri)
          Allocate the namespace code for a namespace prefix/URI pair.
 void diagnosticDump()
          Diagnostic print of the namepool contents
 void generateJavaConstants()
          The following code is used to create a list of Java declarations for the fingerprints of standard names used in a stylesheet.
 short getCodeForPrefix(java.lang.String prefix)
          Get the prefix code for a given Prefix
 short getCodeForURI(java.lang.String uri)
          Get the uri code for a given URI
static NamePool getDefaultNamePool()
          Get the singular default NamePool
 java.lang.String getDisplayName(int nameCode)
          Get the display form of a name (the QName), given its name code or fingerprint
 int getFingerprint(int nameCode)
          Get a fingerprint for the name with a given name code.
 int getFingerprint(java.lang.String uri, java.lang.String localName)
          Get a fingerprint for the name with a given uri and local name.
 java.lang.String getLocalName(int nameCode)
          Get the local part of a name, given its name code or fingerprint
 int getNamespaceCode(int namecode)
          Get a namespace code for the prefix/URI of a given namecode
 int getNamespaceCode(java.lang.String prefix, java.lang.String uri)
          Get the existing namespace code for a namespace prefix/URI pair.
 java.lang.String getPrefix(int nameCode)
          Get the prefix part of a name, given its name code or fingerprint
 java.lang.String getPrefixFromNamespaceCode(int code)
          Get the namespace prefix from a namespace code
 int getPrefixIndex(short uriCode, java.lang.String prefix)
          Get the index of a prefix among all the prefixes used with a given URI
 java.lang.String getPrefixWithIndex(short uriCode, byte index)
          Get a prefix among all the prefixes used with a given URI, given its index
 StandardNames getStandardNames()
          Get the standard names
 java.lang.String getURI(int nameCode)
          Get the namespace-URI of a name, given its name code or fingerprint
 short getURICode(int nameCode)
          Get the URI code of a name, given its name code or fingerprint
 java.lang.String getURIFromNamespaceCode(int code)
          Get the namespace URI from a namespace code
 java.lang.String getURIFromURICode(short code)
          Get the namespace URI from a URI code
 boolean hasSignature(java.lang.Object sig)
          Test whether the namepool contains names defined in a particular Stylesheet
 void importPool(NamePool other)
          Import the names defined in another namepool (typically the one used to create the stylesheet: these names are imported into the namepool used to build the source document).
 boolean isSealed()
          Determine whether the namepool is sealed
 void loadStandardNames()
          Load the standard names that have a special meaning to XSLT
 void setStylesheetSignature(java.lang.Object sig)
          Mark the NamePool to indicate that it contains names defined in a particular stylesheet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NamePool


public NamePool()
Method Detail

getDefaultNamePool


public static NamePool getDefaultNamePool()
Get the singular default NamePool

loadStandardNames


public void loadStandardNames()
Load the standard names that have a special meaning to XSLT

getStandardNames


public StandardNames getStandardNames()
Get the standard names

setStylesheetSignature


public void setStylesheetSignature(java.lang.Object sig)
Mark the NamePool to indicate that it contains names defined in a particular stylesheet

hasSignature


public boolean hasSignature(java.lang.Object sig)
Test whether the namepool contains names defined in a particular Stylesheet

importPool


public void importPool(NamePool other)

Import the names defined in another namepool (typically the one used to create the stylesheet: these names are imported into the namepool used to build the source document). No longer used unless name pools are managed manually

isSealed


public boolean isSealed()
Determine whether the namepool is sealed

allocateNamespaceCode


public int allocateNamespaceCode(java.lang.String prefix,
                                 java.lang.String uri)
Allocate the namespace code for a namespace prefix/URI pair. Create it if not already present

getNamespaceCode


public int getNamespaceCode(java.lang.String prefix,
                            java.lang.String uri)
Get the existing namespace code for a namespace prefix/URI pair.
Returns:
-1 if there is none present

allocateCodeForURI


public short allocateCodeForURI(java.lang.String uri)
Allocate the uri code for a given URI; create one if not found, unless the namepool is sealed

getCodeForURI


public short getCodeForURI(java.lang.String uri)
Get the uri code for a given URI
Returns:
-1 if not present in the name pool

allocateCodeForPrefix


public short allocateCodeForPrefix(java.lang.String prefix)
Allocate the prefix code for a given Prefix; create one if not found

getCodeForPrefix


public short getCodeForPrefix(java.lang.String prefix)
Get the prefix code for a given Prefix
Returns:
-1 if not found

getPrefixIndex


public int getPrefixIndex(short uriCode,
                          java.lang.String prefix)
Get the index of a prefix among all the prefixes used with a given URI
Returns:
-1 if not found

getPrefixWithIndex


public java.lang.String getPrefixWithIndex(short uriCode,
                                           byte index)
Get a prefix among all the prefixes used with a given URI, given its index
Returns:
null if not found

allocate


public int allocate(java.lang.String prefix,
                    java.lang.String uri,
                    java.lang.String localName)
Allocate a name from the pool, or a new Name if there is not a matching one there
Parameters:
prefix -  
uri - - the namespace URI
localName -  
Returns:
an integer (the "namecode") identifying the name within the namepool. The Name itself may be retrieved using the getName(int) method

allocate


public int allocate(java.lang.String prefix,
                    short uriCode,
                    java.lang.String localName)
Allocate a name from the pool, or a new Name if there is not a matching one there
Parameters:
prefix -  
uriCode - - the code of the URI
localName -  
Returns:
an integer (the "namecode") identifying the name within the namepool.

allocateNamespaceCode


public int allocateNamespaceCode(int namecode)
Allocate a namespace code for the prefix/URI of a given namecode

getNamespaceCode


public int getNamespaceCode(int namecode)
Get a namespace code for the prefix/URI of a given namecode

getURI


public java.lang.String getURI(int nameCode)
Get the namespace-URI of a name, given its name code or fingerprint

getURICode


public short getURICode(int nameCode)
Get the URI code of a name, given its name code or fingerprint

getLocalName


public java.lang.String getLocalName(int nameCode)
Get the local part of a name, given its name code or fingerprint

getPrefix


public java.lang.String getPrefix(int nameCode)
Get the prefix part of a name, given its name code or fingerprint

getDisplayName


public java.lang.String getDisplayName(int nameCode)
Get the display form of a name (the QName), given its name code or fingerprint

getFingerprint


public int getFingerprint(int nameCode)
Get a fingerprint for the name with a given name code. The signature has the property that if two signatures are the same, the names are the same (ie. same local name and same URI)

getFingerprint


public int getFingerprint(java.lang.String uri,
                          java.lang.String localName)
Get a fingerprint for the name with a given uri and local name. These must be present in the NamePool. The signature has the property that if two signatures are the same, the names are the same (ie. same local name and same URI).
Returns:
-1 if not found

getURIFromNamespaceCode


public java.lang.String getURIFromNamespaceCode(int code)
Get the namespace URI from a namespace code

getURIFromURICode


public java.lang.String getURIFromURICode(short code)
Get the namespace URI from a URI code

getPrefixFromNamespaceCode


public java.lang.String getPrefixFromNamespaceCode(int code)
Get the namespace prefix from a namespace code

diagnosticDump


public void diagnosticDump()
Diagnostic print of the namepool contents

generateJavaConstants


public void generateJavaConstants()
The following code is used to create a list of Java declarations for the fingerprints of standard names used in a stylesheet. This code is executed while building Saxon, to create the constant definitions appearing in the StandardNames module.