org.apache.xalan.lib.sql
Class DTMDocument

java.lang.Object
  extended byorg.apache.xml.dtm.ref.DTMDefaultBase
      extended byorg.apache.xml.dtm.ref.DTMDefaultBaseTraversers
          extended byorg.apache.xml.dtm.ref.DTMDefaultBaseIterators
              extended byorg.apache.xalan.lib.sql.DTMDocument
All Implemented Interfaces:
DTM
Direct Known Subclasses:
SQLDocument, SQLErrorDocument

public class DTMDocument
extends DTMDefaultBaseIterators

The SQL Document is the main controlling class the executesa SQL Query


Nested Class Summary
static interface DTMDocument.CharacterNodeHandler
           
 
Nested classes inherited from class org.apache.xml.dtm.ref.DTMDefaultBaseIterators
 
Nested classes inherited from class org.apache.xml.dtm.ref.DTMDefaultBaseTraversers
 
Field Summary
private  boolean DEBUG
           
protected  SuballocatedIntVector m_attribute
          For each element node, there can be zero or more attributes.
protected  int m_Document_TypeID
           
protected  int m_DocumentIdx
          The Document Index will most likely be 0, but we will reference it by variable in case that paradigm falls through.
protected  ObjectArray m_ObjectArray
          Store the SQL Data in this growable array
protected  int m_TextNode_TypeID
           
protected static String S_ATTRIB_NOT_SUPPORTED
           
protected static String S_DOCUMENT
           
protected static String S_ELEMENT_NODE
           
protected static String S_ISFALSE
           
protected static String S_ISTRUE
           
protected static String S_NAMESPACE
           
protected static String S_TEXT_NODE
           
 
Fields inherited from class org.apache.xml.dtm.ref.DTMDefaultBase
m_blocksize, m_documentBaseURI, m_dtmIdent, m_elemIndexes, m_expandedNameTable, m_exptype, m_firstch, m_indexing, m_initialblocksize, m_mgr, m_mgrDefault, m_namespaceDeclSetElements, m_namespaceDeclSets, m_nextsib, m_parent, m_prevsib, m_shouldStripWhitespaceStack, m_shouldStripWS, m_size, m_traversers, m_wsfilter, m_xstrf, NOTPROCESSED
 
Fields inherited from interface org.apache.xml.dtm.DTM
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NAMESPACE_NODE, NOTATION_NODE, NTYPES, NULL, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
DTMDocument(DTMManager mgr, int ident)
           
 
Method Summary
protected  int _exptype(int parm1)
          Get the expanded type ID for the given node identity.
protected  int _firstch(int parm1)
          Get the first child for the given node identity.
protected  int _level(int parm1)
          Get the level in the tree for the given node identity.
protected  int _nextsib(int parm1)
          Get the next sibling for the given node identity.
protected  int _parent(int parm1)
          Get the parent for the given node identity.
protected  int _prevsib(int parm1)
          Get the previous sibling for the given node identity.
protected  short _type(int parm1)
          Get the simple type ID for the given node identity.
protected  int addAttributeToNode(Object o, int extendedType, int pnode)
          Link an attribute to a node, if the node already has one or more attributes assigned, then just link this one to the attribute list.
protected  int addElement(int level, int extendedType, int parent, int prevsib)
           
protected  int addElementWithData(Object o, int level, int extendedType, int parent, int prevsib)
           
private  int allocateNodeObject(Object o)
          A common routine that allocates an Object from the Object Array.
 void appendChild(int parm1, boolean parm2, boolean parm3)
          Append a child to the end of the document.
 void appendTextChild(String parm1)
          Append a text node child that will be constructed from a string, to the end of the document.
protected  void cloneAttributeFromNode(int toNode, int fromNode)
          Allow two nodes to share the same set of attributes.
protected  void createExpandedNameTable()
          The Expanded Name table holds all of our Node names.
protected  void declareNamespaceInContext(int parm1, int parm2)
          Build table of namespace declaration locations during DTM construction.
 void dispatchCharactersEvents(int nodeHandle, org.xml.sax.ContentHandler ch, boolean normalize)
          Directly call the characters method on the passed ContentHandler for the string-value of the given node (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).
protected static void dispatchNodeData(org.w3c.dom.Node node, org.xml.sax.ContentHandler ch, int depth)
          Retrieve the text content of a DOM subtree, appending it into a user-supplied FastStringBuffer object.
 void dispatchToEvents(int parm1, org.xml.sax.ContentHandler parm2)
          Directly create SAX parser events from a subtree.
 void dumpDTM()
           
protected  void ensureSize(int parm1)
           
protected  void ensureSizeOfIndex(int parm1, int parm2)
          Ensure that the size of the element indexes can hold the information.
protected  void error(String parm1)
          Simple error for asserts and the like.
protected  int findGTE(int[] parm1, int parm2, int parm3, int parm4)
          Find the first index that occurs in the list that is greater than or equal to the given value.
protected  int findInSortedSuballocatedIntVector(SuballocatedIntVector parm1, int parm2)
          Subroutine: Locate the specified node within m_namespaceDeclSetElements, or the last element which preceeds it in document order %REVIEW% Inlne this into findNamespaceContext?
protected  SuballocatedIntVector findNamespaceContext(int parm1)
          Retrieve list of namespace declaration locations active at this node.
 int getAttributeNode(int parm1, String parm2, String parm3)
          Retrieves an attribute node by by qualified name and namespace URI.
 DTMAxisIterator getAxisIterator(int parm1)
          This is a shortcut to the iterators that implement the XPath axes.
 DTMAxisTraverser getAxisTraverser(int parm1)
          This returns a stateless "traverser", that can navigate over an XPath axis, though perhaps not in document order.
 org.xml.sax.ContentHandler getContentHandler()
          Return this DTM's content handler, if it has one.
 org.xml.sax.ext.DeclHandler getDeclHandler()
          Return this DTM's DeclHandler, if it has one.
 int getDocument()
          Find the Document node handle for the document currently under construction.
 boolean getDocumentAllDeclarationsProcessed()
          Return an indication of whether the processor has read the complete DTD.
 String getDocumentBaseURI()
          Return the base URI of the document entity.
 String getDocumentEncoding(int parm1)
          Return the name of the character encoding scheme in which the document entity is expressed.
 String getDocumentStandalone(int parm1)
          Return an indication of the standalone status of the document, either "yes" or "no".
 String getDocumentSystemIdentifier(int parm1)
          Return the system identifier of the document entity.
 String getDocumentTypeDeclarationPublicIdentifier()
          Return the public identifier of the external subset, normalized as described in 4.2.2 External Entities [XML].
 String getDocumentTypeDeclarationSystemIdentifier()
          A document type declaration information item has the following properties: 1.
 String getDocumentVersion(int parm1)
          Return a string representing the XML version of the document.
 org.xml.sax.DTDHandler getDTDHandler()
          Return this DTM's DTDHandler, if it has one.
 int getElementById(String parm1)
          Returns the Element whose ID is given by elementId.
 org.xml.sax.EntityResolver getEntityResolver()
          Return this DTM's EntityResolver, if it has one.
 org.xml.sax.ErrorHandler getErrorHandler()
          Return this DTM's ErrorHandler, if it has one.
 int getExpandedTypeID(int parm1)
          Given a node handle, return an ID that represents the node's expanded name.
 int getExpandedTypeID(String parm1, String parm2, int parm3)
          Given an expanded name, return an ID.
 int getFirstAttribute(int parm1)
          Given a node handle, get the index of the node's first attribute.
 int getFirstChild(int parm1)
          Given a node handle, get the handle of the node's first child.
 int getFirstNamespaceNode(int parm1, boolean parm2)
          Given a node handle, get the index of the node's first child.
 int getLastChild(int parm1)
          Given a node handle, advance to its last child.
 short getLevel(int parm1)
           Get the depth level of this node in the tree (equals 1 for a parentless node).
 org.xml.sax.ext.LexicalHandler getLexicalHandler()
          Return this DTM's lexical handler, if it has one.
 String getLocalName(int parm1)
          Given a node handle, return its XPath-style localname.
 String getLocalNameFromExpandedNameID(int parm1)
          Given an expanded-name ID, return the local name part.
 String getNamespaceFromExpandedNameID(int parm1)
          Given an expanded-name ID, return the namespace URI part.
 int getNamespaceType(int parm1)
          Returns the namespace type of a specific node
 String getNamespaceURI(int parm1)
          Given a node handle, return its DOM-style namespace URI (As defined in Namespaces, this is the declared URI which this node's prefix -- or default in lieu thereof -- was mapped to.)
 int getNextAttribute(int parm1)
          Given a node handle, advance to the next attribute.
 int getNextNamespaceNode(int parm1, int parm2, boolean parm3)
          Given a namespace handle, advance to the next namespace.
protected  int getNextNodeIdentity(int parm1)
          Get the next node identity value in the list, and call the iterator if it hasn't been added yet.
 int getNextSibling(int parm1)
          Given a node handle, advance to its next sibling.
 org.w3c.dom.Node getNode(int parm1)
          Return an DOM node for the given node.
 String getNodeName(int parm1)
          Given a node handle, return its DOM-style node name.
 String getNodeNameX(int parm1)
          Given a node handle, return the XPath node name.
 short getNodeType(int parm1)
          Given a node handle, return its DOM-style node type.
 String getNodeValue(int parm1)
          Given a node handle, return its node value.
protected  int getNumberOfNodes()
          Get the number of nodes that have been added.
 int getOwnerDocument(int parm1)
          Given a node handle, find the owning document node.
 int getParent(int parm1)
          Given a node handle, find its parent node.
 String getPrefix(int parm1)
          Given a namespace handle, return the prefix that the namespace decl is mapping.
 int getPreviousSibling(int parm1)
          Given a node handle, find its preceeding sibling.
protected  boolean getShouldStripWhitespace()
          Find out whether or not to strip whispace nodes.
 javax.xml.transform.SourceLocator getSourceLocatorFor(int node)
          No source information is available for DOM2DTM, so return null here.
 XMLString getStringValue(int parm1)
          Get the string-value of a node as a String object (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).
 char[] getStringValueChunk(int parm1, int parm2, int[] parm3)
          Get a character array chunk in the string-value of a node.
 int getStringValueChunkCount(int parm1)
          Get number of character array chunks in the string-value of a node.
 DTMAxisIterator getTypedAxisIterator(int parm1, int parm2)
          Get an iterator that can navigate over an XPath Axis, predicated by the extended type ID.
 String getUnparsedEntityURI(String parm1)
          The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).
 boolean hasChildNodes(int parm1)
          Given a node handle, test if it has child nodes.
protected  void indexNode(int parm1, int parm2)
          Add a node to the element indexes.
 boolean isAttributeSpecified(int parm1)
          5.
 boolean isCharacterElementContentWhitespace(int parm1)
          2.
 boolean isDocumentAllDeclarationsProcessed(int parm1)
          10.
 boolean isNodeAfter(int parm1, int parm2)
          Figure out whether nodeHandle2 should be considered as being later in the document than nodeHandle1, in Document Order as defined by the XPath model.
 boolean isSupported(String parm1, String parm2)
          Tests whether DTM DOM implementation implements a specific feature and that feature is supported by this node.
 boolean needsTwoThreads()
           
protected  boolean nextNode()
          This method should try and build one or more nodes in the table.
protected  void popShouldStripWhitespace()
          Set whether to strip whitespaces at this point by popping out m_shouldStripWhitespaceStack.
protected  void pushShouldStripWhitespace(boolean parm1)
          Set whether to strip whitespaces and push in current value of m_shouldStripWS in m_shouldStripWhitespaceStack.
 void setDocumentBaseURI(String parm1)
          Set the base URI of the document entity.
 void setFeature(String parm1, boolean parm2)
          Set an implementation dependent feature.
 void setProperty(String property, Object value)
          For the moment all the run time properties are ignored by this class.
protected  void setShouldStripWhitespace(boolean parm1)
          Set whether to strip whitespaces and set the top of the stack to the current value of m_shouldStripWS.
 boolean supportsPreStripping()
          Event overriding for Debug
 
Methods inherited from class org.apache.xml.dtm.ref.DTMDefaultBase
documentRegistration, documentRelease, dumpDTM, dumpNode, getDocumentRoot, getDTMIDs, getManager, makeNodeHandle, makeNodeIdentity
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

private boolean DEBUG

S_NAMESPACE

protected static final String S_NAMESPACE
See Also:
Constant Field Values

S_ATTRIB_NOT_SUPPORTED

protected static final String S_ATTRIB_NOT_SUPPORTED
See Also:
Constant Field Values

S_ISTRUE

protected static final String S_ISTRUE
See Also:
Constant Field Values

S_ISFALSE

protected static final String S_ISFALSE
See Also:
Constant Field Values

S_DOCUMENT

protected static final String S_DOCUMENT
See Also:
Constant Field Values

S_TEXT_NODE

protected static final String S_TEXT_NODE
See Also:
Constant Field Values

S_ELEMENT_NODE

protected static final String S_ELEMENT_NODE
See Also:
Constant Field Values

m_Document_TypeID

protected int m_Document_TypeID

m_TextNode_TypeID

protected int m_TextNode_TypeID

m_ObjectArray

protected ObjectArray m_ObjectArray
Store the SQL Data in this growable array


m_attribute

protected SuballocatedIntVector m_attribute
For each element node, there can be zero or more attributes. If Attributes are assigned, the first attribute for that element will be use here. Subsequent elements will use the m_nextsib, m_prevsib array. The sibling arrays are not meeant to hold indexes to attribute information but as long as there is not direct connection back into the main DTM tree we should be OK.


m_DocumentIdx

protected int m_DocumentIdx
The Document Index will most likely be 0, but we will reference it by variable in case that paradigm falls through.

Constructor Detail

DTMDocument

public DTMDocument(DTMManager mgr,
                   int ident)
Parameters:
mgr -
ident -
Method Detail

allocateNodeObject

private int allocateNodeObject(Object o)
A common routine that allocates an Object from the Object Array. One of the common bugs in this code was to allocate an Object and not incerment m_size, using this method will assure that function.

Parameters:
o -
Returns:

addElementWithData

protected int addElementWithData(Object o,
                                 int level,
                                 int extendedType,
                                 int parent,
                                 int prevsib)
Parameters:
o -
level -
extendedType -
parent -
prevsib -
Returns:

addElement

protected int addElement(int level,
                         int extendedType,
                         int parent,
                         int prevsib)
Parameters:
level -
extendedType -
parent -
prevsib -
Returns:

addAttributeToNode

protected int addAttributeToNode(Object o,
                                 int extendedType,
                                 int pnode)
Link an attribute to a node, if the node already has one or more attributes assigned, then just link this one to the attribute list. The first attribute is attached to the Parent Node (pnode) through the m_attribute array, subsequent attributes are linked through the m_prevsib, m_nextsib arrays.

Parameters:
o -
extendedType -
pnode -
Returns:

cloneAttributeFromNode

protected void cloneAttributeFromNode(int toNode,
                                      int fromNode)
Allow two nodes to share the same set of attributes. There may be some problems because the parent of any attribute will be the original node they were assigned to. Need to see how the attribute walker works, then we should be able to fake it out.

Parameters:
toNode -
fromNode -
Returns:

getFirstAttribute

public int getFirstAttribute(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, get the index of the node's first attribute.

Specified by:
getFirstAttribute in interface DTM
Overrides:
getFirstAttribute in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNodeValue

public String getNodeValue(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return its node value. This is mostly as defined by the DOM, but may ignore some conveniences.

Specified by:
getNodeValue in interface DTM
Specified by:
getNodeValue in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getStringValue

public XMLString getStringValue(int parm1)
Description copied from class: DTMDefaultBase
Get the string-value of a node as a String object (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).

Specified by:
getStringValue in interface DTM
Specified by:
getStringValue in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNextAttribute

public int getNextAttribute(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, advance to the next attribute. If an attr, we advance to the next attr on the same node. If not an attribute, we return NULL.

Specified by:
getNextAttribute in interface DTM
Overrides:
getNextAttribute in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNumberOfNodes

protected int getNumberOfNodes()
Description copied from class: DTMDefaultBase
Get the number of nodes that have been added.

Specified by:
getNumberOfNodes in class DTMDefaultBase
Returns:

nextNode

protected boolean nextNode()
Description copied from class: DTMDefaultBase
This method should try and build one or more nodes in the table.

Specified by:
nextNode in class DTMDefaultBase
Returns:

createExpandedNameTable

protected void createExpandedNameTable()
The Expanded Name table holds all of our Node names. The Base class will add the common element types, need to call this function from the derived class.

Returns:

dumpDTM

public void dumpDTM()
Returns:

dispatchNodeData

protected static void dispatchNodeData(org.w3c.dom.Node node,
                                       org.xml.sax.ContentHandler ch,
                                       int depth)
                                throws org.xml.sax.SAXException
Retrieve the text content of a DOM subtree, appending it into a user-supplied FastStringBuffer object. Note that attributes are not considered part of the content of an element.

There are open questions regarding whitespace stripping. Currently we make no special effort in that regard, since the standard DOM doesn't yet provide DTD-based information to distinguish whitespace-in-element-context from genuine #PCDATA. Note that we should probably also consider xml:space if/when we address this. DOM Level 3 may solve the problem for us.

%REVIEW% Note that as a DOM-level operation, it can be argued that this routine _shouldn't_ perform any processing beyond what the DOM already does, and that whitespace stripping and so on belong at the DTM level. If you want a stripped DOM view, wrap DTM2DOM around DOM2DTM.

Parameters:
node - Node whose subtree is to be walked, gathering the contents of all Text or CDATASection nodes.
ch -
depth -
Returns:
Throws:
org.xml.sax.SAXException

setProperty

public void setProperty(String property,
                        Object value)
For the moment all the run time properties are ignored by this class.

Parameters:
property - a String value
value - an Object value
Returns:

getSourceLocatorFor

public javax.xml.transform.SourceLocator getSourceLocatorFor(int node)
No source information is available for DOM2DTM, so return null here.

Parameters:
node - an int value
Returns:
null

getNextNodeIdentity

protected int getNextNodeIdentity(int parm1)
Description copied from class: DTMDefaultBase
Get the next node identity value in the list, and call the iterator if it hasn't been added yet.

Specified by:
getNextNodeIdentity in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getAttributeNode

public int getAttributeNode(int parm1,
                            String parm2,
                            String parm3)
Description copied from class: DTMDefaultBase
Retrieves an attribute node by by qualified name and namespace URI.

Specified by:
getAttributeNode in interface DTM
Specified by:
getAttributeNode in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
Returns:

getLocalName

public String getLocalName(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return its XPath-style localname. (As defined in Namespaces, this is the portion of the name after any colon character).

Specified by:
getLocalName in interface DTM
Specified by:
getLocalName in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNodeName

public String getNodeName(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return its DOM-style node name. This will include names such as #text or #document.

Specified by:
getNodeName in interface DTM
Specified by:
getNodeName in class DTMDefaultBase
Parameters:
parm1 -
Returns:

isAttributeSpecified

public boolean isAttributeSpecified(int parm1)
Description copied from class: DTMDefaultBase
5. [specified] A flag indicating whether this attribute was actually specified in the start-tag of its element, or was defaulted from the DTD.

Specified by:
isAttributeSpecified in interface DTM
Specified by:
isAttributeSpecified in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getUnparsedEntityURI

public String getUnparsedEntityURI(String parm1)
Description copied from class: DTMDefaultBase
The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]). It returns the empty string if there is no such entity.

XML processors may choose to use the System Identifier (if one is provided) to resolve the entity, rather than the URI in the Public Identifier. The details are dependent on the processor, and we would have to support some form of plug-in resolver to handle this properly. Currently, we simply return the System Identifier if present, and hope that it a usable URI or that our caller can map it to one. TODO: Resolve Public Identifiers... or consider changing function name.

If we find a relative URI reference, XML expects it to be resolved in terms of the base URI of the document. The DOM doesn't do that for us, and it isn't entirely clear whether that should be done here; currently that's pushed up to a higher level of our application. (Note that DOM Level 1 didn't store the document's base URI.) TODO: Consider resolving Relative URIs.

(The DOM's statement that "An XML processor may choose to completely expand entities before the structure model is passed to the DOM" refers only to parsed entities, not unparsed, and hence doesn't affect this function.)

Specified by:
getUnparsedEntityURI in interface DTM
Specified by:
getUnparsedEntityURI in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDTDHandler

public org.xml.sax.DTDHandler getDTDHandler()
Description copied from interface: DTM
Return this DTM's DTDHandler, if it has one.

Returns:

getPrefix

public String getPrefix(int parm1)
Description copied from class: DTMDefaultBase
Given a namespace handle, return the prefix that the namespace decl is mapping. Given a node handle, return the prefix used to map to the namespace.

%REVIEW% Are you sure you want "" for no prefix?

%REVIEW-COMMENT% I think so... not totally sure. -sb

Specified by:
getPrefix in interface DTM
Specified by:
getPrefix in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getEntityResolver

public org.xml.sax.EntityResolver getEntityResolver()
Description copied from interface: DTM
Return this DTM's EntityResolver, if it has one.

Returns:

getDocumentTypeDeclarationPublicIdentifier

public String getDocumentTypeDeclarationPublicIdentifier()
Description copied from class: DTMDefaultBase
Return the public identifier of the external subset, normalized as described in 4.2.2 External Entities [XML]. If there is no external subset or if it has no public identifier, this property has no value.

Specified by:
getDocumentTypeDeclarationPublicIdentifier in interface DTM
Specified by:
getDocumentTypeDeclarationPublicIdentifier in class DTMDefaultBase
Returns:

getLexicalHandler

public org.xml.sax.ext.LexicalHandler getLexicalHandler()
Description copied from interface: DTM
Return this DTM's lexical handler, if it has one. %REVIEW% Should this return null if constrution already done/begun?

Returns:

needsTwoThreads

public boolean needsTwoThreads()
Returns:

getContentHandler

public org.xml.sax.ContentHandler getContentHandler()
Description copied from interface: DTM
Return this DTM's content handler, if it has one.

Returns:

dispatchToEvents

public void dispatchToEvents(int parm1,
                             org.xml.sax.ContentHandler parm2)
                      throws org.xml.sax.SAXException
Description copied from class: DTMDefaultBase
Directly create SAX parser events from a subtree.

Specified by:
dispatchToEvents in interface DTM
Specified by:
dispatchToEvents in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:
Throws:
org.xml.sax.SAXException
org.xml.sax.SAXException

getNamespaceURI

public String getNamespaceURI(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return its DOM-style namespace URI (As defined in Namespaces, this is the declared URI which this node's prefix -- or default in lieu thereof -- was mapped to.)

%REVIEW% Null or ""? -sb

Specified by:
getNamespaceURI in interface DTM
Specified by:
getNamespaceURI in class DTMDefaultBase
Parameters:
parm1 -
Returns:

dispatchCharactersEvents

public void dispatchCharactersEvents(int nodeHandle,
                                     org.xml.sax.ContentHandler ch,
                                     boolean normalize)
                              throws org.xml.sax.SAXException
Description copied from class: DTMDefaultBase
Directly call the characters method on the passed ContentHandler for the string-value of the given node (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Multiple calls to the ContentHandler's characters methods may well occur for a single call to this method.

Specified by:
dispatchCharactersEvents in interface DTM
Specified by:
dispatchCharactersEvents in class DTMDefaultBase
Parameters:
nodeHandle -
ch -
normalize -
Returns:
Throws:
org.xml.sax.SAXException
org.xml.sax.SAXException

supportsPreStripping

public boolean supportsPreStripping()
Event overriding for Debug

Specified by:
supportsPreStripping in interface DTM
Overrides:
supportsPreStripping in class DTMDefaultBase
Returns:

_exptype

protected int _exptype(int parm1)
Description copied from class: DTMDefaultBase
Get the expanded type ID for the given node identity.

Overrides:
_exptype in class DTMDefaultBase
Parameters:
parm1 -
Returns:

findNamespaceContext

protected SuballocatedIntVector findNamespaceContext(int parm1)
Description copied from class: DTMDefaultBase
Retrieve list of namespace declaration locations active at this node. List is an SuballocatedIntVector whose entries are the namespace node HANDLES declared at that ID. %REVIEW% Directly managed arrays rather than vectors? %REVIEW% Handles or IDs? Given usage, I think handles.

Overrides:
findNamespaceContext in class DTMDefaultBase
Parameters:
parm1 -
Returns:

_prevsib

protected int _prevsib(int parm1)
Description copied from class: DTMDefaultBase
Get the previous sibling for the given node identity.

Overrides:
_prevsib in class DTMDefaultBase
Parameters:
parm1 -
Returns:

_type

protected short _type(int parm1)
Description copied from class: DTMDefaultBase
Get the simple type ID for the given node identity.

Overrides:
_type in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNode

public org.w3c.dom.Node getNode(int parm1)
Description copied from class: DTMDefaultBase
Return an DOM node for the given node.

Specified by:
getNode in interface DTM
Overrides:
getNode in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getPreviousSibling

public int getPreviousSibling(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, find its preceeding sibling. WARNING: DTM is asymmetric; this operation is resolved by search, and is relatively expensive.

Specified by:
getPreviousSibling in interface DTM
Overrides:
getPreviousSibling in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocumentStandalone

public String getDocumentStandalone(int parm1)
Description copied from class: DTMDefaultBase
Return an indication of the standalone status of the document, either "yes" or "no". This property is derived from the optional standalone document declaration in the XML declaration at the beginning of the document entity, and has no value if there is no standalone document declaration.

Specified by:
getDocumentStandalone in interface DTM
Overrides:
getDocumentStandalone in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNodeNameX

public String getNodeNameX(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return the XPath node name. This should be the name as described by the XPath data model, NOT the DOM-style name.

Specified by:
getNodeNameX in interface DTM
Overrides:
getNodeNameX in class DTMDefaultBase
Parameters:
parm1 -
Returns:

setFeature

public void setFeature(String parm1,
                       boolean parm2)
Description copied from class: DTMDefaultBase
Set an implementation dependent feature.

%REVIEW% Do we really expect to set features on DTMs?

Specified by:
setFeature in interface DTM
Overrides:
setFeature in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

_parent

protected int _parent(int parm1)
Description copied from class: DTMDefaultBase
Get the parent for the given node identity.

Overrides:
_parent in class DTMDefaultBase
Parameters:
parm1 -
Returns:

indexNode

protected void indexNode(int parm1,
                         int parm2)
Description copied from class: DTMDefaultBase
Add a node to the element indexes. The node will not be added unless it's an element.

Overrides:
indexNode in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

getShouldStripWhitespace

protected boolean getShouldStripWhitespace()
Description copied from class: DTMDefaultBase
Find out whether or not to strip whispace nodes.

Overrides:
getShouldStripWhitespace in class DTMDefaultBase
Returns:

popShouldStripWhitespace

protected void popShouldStripWhitespace()
Description copied from class: DTMDefaultBase
Set whether to strip whitespaces at this point by popping out m_shouldStripWhitespaceStack.

Overrides:
popShouldStripWhitespace in class DTMDefaultBase
Returns:

isNodeAfter

public boolean isNodeAfter(int parm1,
                           int parm2)
Description copied from class: DTMDefaultBase
Figure out whether nodeHandle2 should be considered as being later in the document than nodeHandle1, in Document Order as defined by the XPath model. This may not agree with the ordering defined by other XML applications.

There are some cases where ordering isn't defined, and neither are the results of this function -- though we'll generally return false.

Specified by:
isNodeAfter in interface DTM
Overrides:
isNodeAfter in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

getNamespaceType

public int getNamespaceType(int parm1)
Description copied from class: DTMDefaultBase
Returns the namespace type of a specific node

Overrides:
getNamespaceType in class DTMDefaultBase
Parameters:
parm1 -
Returns:

_level

protected int _level(int parm1)
Description copied from class: DTMDefaultBase
Get the level in the tree for the given node identity.

Overrides:
_level in class DTMDefaultBase
Parameters:
parm1 -
Returns:

pushShouldStripWhitespace

protected void pushShouldStripWhitespace(boolean parm1)
Description copied from class: DTMDefaultBase
Set whether to strip whitespaces and push in current value of m_shouldStripWS in m_shouldStripWhitespaceStack.

Overrides:
pushShouldStripWhitespace in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocumentVersion

public String getDocumentVersion(int parm1)
Description copied from class: DTMDefaultBase
Return a string representing the XML version of the document. This property is derived from the XML declaration optionally present at the beginning of the document entity, and has no value if there is no XML declaration.

Specified by:
getDocumentVersion in interface DTM
Overrides:
getDocumentVersion in class DTMDefaultBase
Parameters:
parm1 -
Returns:

isSupported

public boolean isSupported(String parm1,
                           String parm2)
Description copied from class: DTMDefaultBase
Tests whether DTM DOM implementation implements a specific feature and that feature is supported by this node.

Specified by:
isSupported in interface DTM
Overrides:
isSupported in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

setShouldStripWhitespace

protected void setShouldStripWhitespace(boolean parm1)
Description copied from class: DTMDefaultBase
Set whether to strip whitespaces and set the top of the stack to the current value of m_shouldStripWS.

Overrides:
setShouldStripWhitespace in class DTMDefaultBase
Parameters:
parm1 -
Returns:

ensureSizeOfIndex

protected void ensureSizeOfIndex(int parm1,
                                 int parm2)
Description copied from class: DTMDefaultBase
Ensure that the size of the element indexes can hold the information.

Overrides:
ensureSizeOfIndex in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

ensureSize

protected void ensureSize(int parm1)
Parameters:
parm1 -
Returns:

getDocumentEncoding

public String getDocumentEncoding(int parm1)
Description copied from class: DTMDefaultBase
Return the name of the character encoding scheme in which the document entity is expressed.

Specified by:
getDocumentEncoding in interface DTM
Overrides:
getDocumentEncoding in class DTMDefaultBase
Parameters:
parm1 -
Returns:

appendChild

public void appendChild(int parm1,
                        boolean parm2,
                        boolean parm3)
Description copied from class: DTMDefaultBase
Append a child to the end of the document. Please note that the node is always cloned if it is owned by another document.

%REVIEW% "End of the document" needs to be defined more clearly. Does it become the last child of the Document? Of the root element?

Specified by:
appendChild in interface DTM
Overrides:
appendChild in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
Returns:

getLevel

public short getLevel(int parm1)
Description copied from class: DTMDefaultBase
Get the depth level of this node in the tree (equals 1 for a parentless node).

Specified by:
getLevel in interface DTM
Overrides:
getLevel in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocumentBaseURI

public String getDocumentBaseURI()
Description copied from class: DTMDefaultBase
Return the base URI of the document entity. If it is not known (because the document was parsed from a socket connection or from standard input, for example), the value of this property is unknown.

Specified by:
getDocumentBaseURI in interface DTM
Overrides:
getDocumentBaseURI in class DTMDefaultBase
Returns:

getNextNamespaceNode

public int getNextNamespaceNode(int parm1,
                                int parm2,
                                boolean parm3)
Description copied from class: DTMDefaultBase
Given a namespace handle, advance to the next namespace.

Specified by:
getNextNamespaceNode in interface DTM
Overrides:
getNextNamespaceNode in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
Returns:

appendTextChild

public void appendTextChild(String parm1)
Description copied from class: DTMDefaultBase
Append a text node child that will be constructed from a string, to the end of the document.

%REVIEW% "End of the document" needs to be defined more clearly. Does it become the last child of the Document? Of the root element?

Specified by:
appendTextChild in interface DTM
Overrides:
appendTextChild in class DTMDefaultBase
Parameters:
parm1 -
Returns:

findGTE

protected int findGTE(int[] parm1,
                      int parm2,
                      int parm3,
                      int parm4)
Description copied from class: DTMDefaultBase
Find the first index that occurs in the list that is greater than or equal to the given value.

Overrides:
findGTE in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
parm4 -
Returns:

getFirstNamespaceNode

public int getFirstNamespaceNode(int parm1,
                                 boolean parm2)
Description copied from class: DTMDefaultBase
Given a node handle, get the index of the node's first child. If not yet resolved, waits for more nodes to be added to the document and tries again

Specified by:
getFirstNamespaceNode in interface DTM
Overrides:
getFirstNamespaceNode in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

getStringValueChunkCount

public int getStringValueChunkCount(int parm1)
Description copied from class: DTMDefaultBase
Get number of character array chunks in the string-value of a node. (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Note that a single text node may have multiple text chunks.

Specified by:
getStringValueChunkCount in interface DTM
Overrides:
getStringValueChunkCount in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getLastChild

public int getLastChild(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, advance to its last child. If not yet resolved, waits for more nodes to be added to the document and tries again.

Specified by:
getLastChild in interface DTM
Overrides:
getLastChild in class DTMDefaultBase
Parameters:
parm1 -
Returns:

hasChildNodes

public boolean hasChildNodes(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, test if it has child nodes.

%REVIEW% This is obviously useful at the DOM layer, where it would permit testing this without having to create a proxy node. It's less useful in the DTM API, where (dtm.getFirstChild(nodeHandle)!=DTM.NULL) is just as fast and almost as self-evident. But it's a convenience, and eases porting of DOM code to DTM.

Specified by:
hasChildNodes in interface DTM
Overrides:
hasChildNodes in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNodeType

public short getNodeType(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return its DOM-style node type.

%REVIEW% Generally, returning short is false economy. Return int? %REVIEW% Make assumption that node has already arrived. Is OK?

Specified by:
getNodeType in interface DTM
Overrides:
getNodeType in class DTMDefaultBase
Parameters:
parm1 -
Returns:

isCharacterElementContentWhitespace

public boolean isCharacterElementContentWhitespace(int parm1)
Description copied from class: DTMDefaultBase
2. [element content whitespace] A boolean indicating whether the character is white space appearing within element content (see [XML], 2.10 "White Space Handling"). Note that validating XML processors are required by XML 1.0 to provide this information. If there is no declaration for the containing element, this property has no value for white space characters. If no declaration has been read, but the [all declarations processed] property of the document information item is false (so there may be an unread declaration), then the value of this property is unknown for white space characters. It is always false for characters that are not white space.

Specified by:
isCharacterElementContentWhitespace in interface DTM
Overrides:
isCharacterElementContentWhitespace in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getFirstChild

public int getFirstChild(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, get the handle of the node's first child. If not yet resolved, waits for more nodes to be added to the document and tries again.

Specified by:
getFirstChild in interface DTM
Overrides:
getFirstChild in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocumentSystemIdentifier

public String getDocumentSystemIdentifier(int parm1)
Description copied from class: DTMDefaultBase
Return the system identifier of the document entity. If it is not known, the value of this property is unknown.

Specified by:
getDocumentSystemIdentifier in interface DTM
Overrides:
getDocumentSystemIdentifier in class DTMDefaultBase
Parameters:
parm1 -
Returns:

declareNamespaceInContext

protected void declareNamespaceInContext(int parm1,
                                         int parm2)
Description copied from class: DTMDefaultBase
Build table of namespace declaration locations during DTM construction. Table is a Vector of SuballocatedIntVectors containing the namespace node HANDLES declared at that ID, plus an SuballocatedIntVector of the element node INDEXES at which these declarations appeared. NOTE: Since this occurs during model build, nodes will be encountered in doucment order and thus the table will be ordered by element, permitting binary-search as a possible retrieval optimization. %REVIEW% Directly managed arrays rather than vectors? %REVIEW% Handles or IDs? Given usage, I think handles.

Overrides:
declareNamespaceInContext in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

getNamespaceFromExpandedNameID

public String getNamespaceFromExpandedNameID(int parm1)
Description copied from class: DTMDefaultBase
Given an expanded-name ID, return the namespace URI part.

Specified by:
getNamespaceFromExpandedNameID in interface DTM
Overrides:
getNamespaceFromExpandedNameID in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getLocalNameFromExpandedNameID

public String getLocalNameFromExpandedNameID(int parm1)
Description copied from class: DTMDefaultBase
Given an expanded-name ID, return the local name part.

Specified by:
getLocalNameFromExpandedNameID in interface DTM
Overrides:
getLocalNameFromExpandedNameID in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getExpandedTypeID

public int getExpandedTypeID(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, return an ID that represents the node's expanded name.

Specified by:
getExpandedTypeID in interface DTM
Overrides:
getExpandedTypeID in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocument

public int getDocument()
Description copied from class: DTMDefaultBase
Find the Document node handle for the document currently under construction. PLEASE NOTE that most people should use getOwnerDocument(nodeHandle) instead; this version of the operation is primarily intended for use during negotiation with the DTM Manager.

Specified by:
getDocument in interface DTM
Overrides:
getDocument in class DTMDefaultBase
Returns:

findInSortedSuballocatedIntVector

protected int findInSortedSuballocatedIntVector(SuballocatedIntVector parm1,
                                                int parm2)
Description copied from class: DTMDefaultBase
Subroutine: Locate the specified node within m_namespaceDeclSetElements, or the last element which preceeds it in document order %REVIEW% Inlne this into findNamespaceContext? Create SortedSuballocatedIntVector type?

Overrides:
findInSortedSuballocatedIntVector in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
Returns:

isDocumentAllDeclarationsProcessed

public boolean isDocumentAllDeclarationsProcessed(int parm1)
Description copied from class: DTMDefaultBase
10. [all declarations processed] This property is not strictly speaking part of the infoset of the document. Rather it is an indication of whether the processor has read the complete DTD. Its value is a boolean. If it is false, then certain properties (indicated in their descriptions below) may be unknown. If it is true, those properties are never unknown.

Specified by:
isDocumentAllDeclarationsProcessed in interface DTM
Overrides:
isDocumentAllDeclarationsProcessed in class DTMDefaultBase
Parameters:
parm1 -
Returns:

error

protected void error(String parm1)
Description copied from class: DTMDefaultBase
Simple error for asserts and the like.

Overrides:
error in class DTMDefaultBase
Parameters:
parm1 -
Returns:

_firstch

protected int _firstch(int parm1)
Description copied from class: DTMDefaultBase
Get the first child for the given node identity.

Overrides:
_firstch in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getOwnerDocument

public int getOwnerDocument(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, find the owning document node. This has the exact same semantics as the DOM Document method of the same name, in that if the nodeHandle is a document node, it will return NULL.

%REVIEW% Since this is DOM-specific, it may belong at the DOM binding layer. Included here as a convenience function and to aid porting of DOM code to DTM.

Specified by:
getOwnerDocument in interface DTM
Overrides:
getOwnerDocument in class DTMDefaultBase
Parameters:
parm1 -
Returns:

_nextsib

protected int _nextsib(int parm1)
Description copied from class: DTMDefaultBase
Get the next sibling for the given node identity.

Overrides:
_nextsib in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getNextSibling

public int getNextSibling(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, advance to its next sibling. If not yet resolved, waits for more nodes to be added to the document and tries again.

Specified by:
getNextSibling in interface DTM
Overrides:
getNextSibling in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDocumentAllDeclarationsProcessed

public boolean getDocumentAllDeclarationsProcessed()
Description copied from class: DTMDefaultBase
Return an indication of whether the processor has read the complete DTD. Its value is a boolean. If it is false, then certain properties (indicated in their descriptions below) may be unknown. If it is true, those properties are never unknown.

Specified by:
getDocumentAllDeclarationsProcessed in interface DTM
Overrides:
getDocumentAllDeclarationsProcessed in class DTMDefaultBase
Returns:

getParent

public int getParent(int parm1)
Description copied from class: DTMDefaultBase
Given a node handle, find its parent node.

Specified by:
getParent in interface DTM
Overrides:
getParent in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getExpandedTypeID

public int getExpandedTypeID(String parm1,
                             String parm2,
                             int parm3)
Description copied from class: DTMDefaultBase
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.

Specified by:
getExpandedTypeID in interface DTM
Overrides:
getExpandedTypeID in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
Returns:

setDocumentBaseURI

public void setDocumentBaseURI(String parm1)
Description copied from class: DTMDefaultBase
Set the base URI of the document entity.

Specified by:
setDocumentBaseURI in interface DTM
Overrides:
setDocumentBaseURI in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getStringValueChunk

public char[] getStringValueChunk(int parm1,
                                  int parm2,
                                  int[] parm3)
Description copied from class: DTMDefaultBase
Get a character array chunk in the string-value of a node. (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Note that a single text node may have multiple text chunks.

Specified by:
getStringValueChunk in interface DTM
Overrides:
getStringValueChunk in class DTMDefaultBase
Parameters:
parm1 -
parm2 -
parm3 -
Returns:

getAxisTraverser

public DTMAxisTraverser getAxisTraverser(int parm1)
Description copied from class: DTMDefaultBaseTraversers
This returns a stateless "traverser", that can navigate over an XPath axis, though perhaps not in document order.

Specified by:
getAxisTraverser in interface DTM
Overrides:
getAxisTraverser in class DTMDefaultBaseTraversers
Parameters:
parm1 -
Returns:

getTypedAxisIterator

public DTMAxisIterator getTypedAxisIterator(int parm1,
                                            int parm2)
Description copied from class: DTMDefaultBaseIterators
Get an iterator that can navigate over an XPath Axis, predicated by the extended type ID. Returns an iterator that must be initialized with a start node (using iterator.setStartNode()).

Specified by:
getTypedAxisIterator in interface DTM
Overrides:
getTypedAxisIterator in class DTMDefaultBaseIterators
Parameters:
parm1 -
parm2 -
Returns:

getAxisIterator

public DTMAxisIterator getAxisIterator(int parm1)
Description copied from class: DTMDefaultBaseIterators
This is a shortcut to the iterators that implement the XPath axes. Returns a bare-bones iterator that must be initialized with a start node (using iterator.setStartNode()).

Specified by:
getAxisIterator in interface DTM
Overrides:
getAxisIterator in class DTMDefaultBaseIterators
Parameters:
parm1 -
Returns:

getElementById

public int getElementById(String parm1)
Description copied from class: DTMDefaultBase
Returns the Element whose ID is given by elementId. If no such element exists, returns DTM.NULL. Behavior is not defined if more than one element has this ID. Attributes (including those with the name "ID") are not of type ID unless so defined by DTD/Schema information available to the DTM implementation. Implementations that do not know whether attributes are of type ID or not are expected to return DTM.NULL.

%REVIEW% Presumably IDs are still scoped to a single document, and this operation searches only within a single document, right? Wouldn't want collisions between DTMs in the same process.

Specified by:
getElementById in interface DTM
Specified by:
getElementById in class DTMDefaultBase
Parameters:
parm1 -
Returns:

getDeclHandler

public org.xml.sax.ext.DeclHandler getDeclHandler()
Description copied from interface: DTM
Return this DTM's DeclHandler, if it has one.

Returns:

getErrorHandler

public org.xml.sax.ErrorHandler getErrorHandler()
Description copied from interface: DTM
Return this DTM's ErrorHandler, if it has one.

Returns:

getDocumentTypeDeclarationSystemIdentifier

public String getDocumentTypeDeclarationSystemIdentifier()
Description copied from class: DTMDefaultBase
A document type declaration information item has the following properties: 1. [system identifier] The system identifier of the external subset, if it exists. Otherwise this property has no value.

Specified by:
getDocumentTypeDeclarationSystemIdentifier in interface DTM
Specified by:
getDocumentTypeDeclarationSystemIdentifier in class DTMDefaultBase
Returns: