org.apache.xml.dtm.ref

Class ExpandedNameTable

public class ExpandedNameTable extends Object

This is a default implementation of a table that manages mappings from expanded names to expandedNameIDs. %OPT% The performance of the getExpandedTypeID() method is very important to DTM building. To get the best performance out of this class, we implement a simple hash algorithm directly into this class, instead of using the inefficient java.util.Hashtable. The code for the get and put operations are combined in getExpandedTypeID() method to share the same hash calculation code. We only need to implement the rehash() interface which is used to expand the hash table.
Field Summary
static intATTRIBUTE
static intCDATA_SECTION
static intCOMMENT
static intDOCUMENT
static intDOCUMENT_FRAGMENT
static intDOCUMENT_TYPE
static intELEMENT
static intENTITY
static intENTITY_REFERENCE
static intNAMESPACE
static intNOTATION
static intPROCESSING_INSTRUCTION
static intTEXT
Constructor Summary
ExpandedNameTable()
Create an expanded name table.
Method Summary
intgetExpandedTypeID(String namespace, String localName, int type)
Given an expanded name represented by namespace, local name and node type, return an ID.
intgetExpandedTypeID(String namespace, String localName, int type, boolean searchOnly)
Given an expanded name represented by namespace, local name and node type, return an ID.
intgetExpandedTypeID(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.
ExtendedType[]getExtendedTypes()
Return the array of extended types
StringgetLocalName(int ExpandedNameID)
Given an expanded-name ID, return the local name part.
intgetLocalNameID(int ExpandedNameID)
Given an expanded-name ID, return the local name ID.
StringgetNamespace(int ExpandedNameID)
Given an expanded-name ID, return the namespace URI part.
intgetNamespaceID(int ExpandedNameID)
Given an expanded-name ID, return the namespace URI ID.
intgetSize()
Return the size of the ExpandedNameTable
shortgetType(int ExpandedNameID)
Given an expanded-name ID, return the local name ID.

Field Detail

ATTRIBUTE

public static final int ATTRIBUTE

CDATA_SECTION

public static final int CDATA_SECTION

COMMENT

public static final int COMMENT

DOCUMENT

public static final int DOCUMENT

DOCUMENT_FRAGMENT

public static final int DOCUMENT_FRAGMENT

DOCUMENT_TYPE

public static final int DOCUMENT_TYPE

ELEMENT

public static final int ELEMENT

ENTITY

public static final int ENTITY

ENTITY_REFERENCE

public static final int ENTITY_REFERENCE

NAMESPACE

public static final int NAMESPACE

NOTATION

public static final int NOTATION

PROCESSING_INSTRUCTION

public static final int PROCESSING_INSTRUCTION

TEXT

public static final int TEXT

Constructor Detail

ExpandedNameTable

public ExpandedNameTable()
Create an expanded name table.

Method Detail

getExpandedTypeID

public int getExpandedTypeID(String namespace, String localName, int type)
Given an expanded name represented by namespace, local name and node type, 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 The namespace localName The local name type The node type

Returns: the expanded-name id of the node.

getExpandedTypeID

public int getExpandedTypeID(String namespace, String localName, int type, boolean searchOnly)
Given an expanded name represented by namespace, local name and node type, 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.

If searchOnly is true, we will return -1 if the name is not found in the table, otherwise the name is added to the table and the expanded name id of the new entry is returned.

Parameters: namespace The namespace localName The local name type The node type searchOnly If it is true, we will only search for the expanded name. -1 is return is the name is not found.

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.

getExtendedTypes

public ExtendedType[] getExtendedTypes()
Return the array of extended types

Returns: The array of extended types

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.

getSize

public int getSize()
Return the size of the ExpandedNameTable

Returns: The size of the ExpandedNameTable

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.

Copyright © 2005 Apache XML Project. All Rights Reserved.