org.apache.xml.dtm.ref
Class ExpandedNameTable

java.lang.Object
  extended byorg.apache.xml.dtm.ref.ExpandedNameTable

public class ExpandedNameTable
extends Object

This is a default implementation of a table that manages mappings from expanded names to expandedNameIDs. %REVIEW% Note that this is not really a separate table, or a separate pool. Instead, it's an access method build on top of the existing pools, using three pieces of information: the index numbers for a node's namespaceURI, localName, and node type, which are combined to yield a composite index number. %TBD% startup sequence -- how this gets access to the appropriate string pools in the DTMDocument/stylesheet.


Nested Class Summary
private static class ExpandedNameTable.ExtendedType
          Private class representing an extended type object
 
Field Summary
static int ATTRIBUTE
           
static int CDATA_SECTION
           
static int COMMENT
           
static int DOCUMENT
           
static int DOCUMENT_FRAGMENT
           
static int DOCUMENT_TYPE
           
static int ELEMENT
           
static int ENTITY
           
static int ENTITY_REFERENCE
           
(package private)  ExpandedNameTable.ExtendedType hashET
          Workspace for lookup.
private static Vector m_defaultExtendedTypes
           
private static Hashtable m_defaultHashtable
           
private  Vector m_extendedTypes
          Vector of extended types for this document
(package private)  Hashtable m_hashtable
           
private  int m_nextType
          Next available extended type
static int NAMESPACE
           
static int NOTATION
           
static int PROCESSING_INSTRUCTION
           
static int TEXT
           
 
Constructor Summary
ExpandedNameTable()
          Create an expanded name table that uses private string pool lookup.
ExpandedNameTable(DTMStringPool locNamesPool, DTMStringPool namespaceNames)
          Constructor ExpandedNameTable
 
Method Summary
 int getExpandedTypeID(int type)
          Given a type, return an expanded name ID.Any additional nodes that are created that have this expanded name will use this ID.
 int getExpandedTypeID(String namespace, String localName, int type)
          Given an expanded name, return an ID.
 String getLocalName(int ExpandedNameID)
          Given an expanded-name ID, return the local name part.
 int getLocalNameID(int ExpandedNameID)
          Given an expanded-name ID, return the local name ID.
 String getNamespace(int ExpandedNameID)
          Given an expanded-name ID, return the namespace URI part.
 int getNamespaceID(int ExpandedNameID)
          Given an expanded-name ID, return the namespace URI ID.
 short getType(int ExpandedNameID)
          Given an expanded-name ID, return the local name ID.
private  void initExtendedTypes()
          Initialize the vector of extended types with the basic DOM node types.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_extendedTypes

private Vector m_extendedTypes
Vector of extended types for this document


m_nextType

private int m_nextType
Next available extended type


ELEMENT

public static final int ELEMENT
See Also:
Constant Field Values

ATTRIBUTE

public static final int ATTRIBUTE
See Also:
Constant Field Values

TEXT

public static final int TEXT
See Also:
Constant Field Values

CDATA_SECTION

public static final int CDATA_SECTION
See Also:
Constant Field Values

ENTITY_REFERENCE

public static final int ENTITY_REFERENCE
See Also:
Constant Field Values

ENTITY

public static final int ENTITY
See Also:
Constant Field Values

PROCESSING_INSTRUCTION

public static final int PROCESSING_INSTRUCTION
See Also:
Constant Field Values

COMMENT

public static final int COMMENT
See Also:
Constant Field Values

DOCUMENT

public static final int DOCUMENT
See Also:
Constant Field Values

DOCUMENT_TYPE

public static final int DOCUMENT_TYPE
See Also:
Constant Field Values

DOCUMENT_FRAGMENT

public static final int DOCUMENT_FRAGMENT
See Also:
Constant Field Values

NOTATION

public static final int NOTATION
See Also:
Constant Field Values

NAMESPACE

public static final int NAMESPACE
See Also:
Constant Field Values

m_hashtable

Hashtable m_hashtable

hashET

ExpandedNameTable.ExtendedType hashET
Workspace for lookup. NOT THREAD SAFE!


m_defaultHashtable

private static Hashtable m_defaultHashtable

m_defaultExtendedTypes

private static Vector m_defaultExtendedTypes
Constructor Detail

ExpandedNameTable

public ExpandedNameTable()
Create an expanded name table that uses private string pool lookup.


ExpandedNameTable

public ExpandedNameTable(DTMStringPool locNamesPool,
                         DTMStringPool namespaceNames)
Constructor ExpandedNameTable

Parameters:
locNamesPool - Local element names lookup.
namespaceNames - Namespace values lookup.
Method Detail

initExtendedTypes

private void initExtendedTypes()
Initialize the vector of extended types with the basic DOM node types.


getExpandedTypeID

public int getExpandedTypeID(String namespace,
                             String localName,
                             int type)
Given an expanded name, return an ID. If the expanded-name does not exist in the internal tables, the entry will be created, and the ID will be returned. Any additional nodes that are created that have this expanded name will use this ID.

Parameters:
namespace -
localName -
Returns:
the expanded-name id of the node.

getExpandedTypeID

public int getExpandedTypeID(int type)
Given a type, return an expanded name ID.Any additional nodes that are created that have this expanded name will use this ID.

Returns:
the expanded-name id of the node.

getLocalName

public String getLocalName(int ExpandedNameID)
Given an expanded-name ID, return the local name part.

Parameters:
ExpandedNameID - an ID that represents an expanded-name.
Returns:
String Local name of this node, or null if the node has no name.

getLocalNameID

public final int getLocalNameID(int ExpandedNameID)
Given an expanded-name ID, return the local name ID.

Parameters:
ExpandedNameID - an ID that represents an expanded-name.
Returns:
The id of this local name.

getNamespace

public String getNamespace(int ExpandedNameID)
Given an expanded-name ID, return the namespace URI part.

Parameters:
ExpandedNameID - an ID that represents an expanded-name.
Returns:
String URI value of this node's namespace, or null if no namespace was resolved.

getNamespaceID

public final int getNamespaceID(int ExpandedNameID)
Given an expanded-name ID, return the namespace URI ID.

Parameters:
ExpandedNameID - an ID that represents an expanded-name.
Returns:
The id of this namespace.

getType

public final short getType(int ExpandedNameID)
Given an expanded-name ID, return the local name ID.

Parameters:
ExpandedNameID - an ID that represents an expanded-name.
Returns:
The id of this local name.