org.apache.xerces.dom
Class DeferredDocumentImpl

java.lang.Object
  extended by org.apache.xerces.dom.NodeImpl
      extended by org.apache.xerces.dom.ChildNode
          extended by org.apache.xerces.dom.ParentNode
              extended by org.apache.xerces.dom.CoreDocumentImpl
                  extended by org.apache.xerces.dom.DocumentImpl
                      extended by org.apache.xerces.dom.DeferredDocumentImpl
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, DeferredNode, Document, DocumentEvent, EventTarget, Node, NodeList, DocumentRange, DocumentTraversal

public class DeferredDocumentImpl
extends DocumentImpl
implements DeferredNode

The Document interface represents the entire HTML or XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a Document, the Document interface also contains the factory methods needed to create these objects. The Node objects created have a ownerDocument attribute which associates them with the Document within whose context they were created.

Since:
PR-DOM-Level-1-19980818.
Version:
$Id: DeferredDocumentImpl.java 511134 2007-02-23 22:08:04Z mrglavas $
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.xerces.dom.NodeImpl
DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_IS_CONTAINED, DOCUMENT_POSITION_PRECEDING, ELEMENT_DEFINITION_NODE, TREE_POSITION_ANCESTOR, TREE_POSITION_DESCENDANT, TREE_POSITION_DISCONNECTED, TREE_POSITION_EQUIVALENT, TREE_POSITION_FOLLOWING, TREE_POSITION_PRECEDING, TREE_POSITION_SAME_NODE
 
Fields inherited from interface org.apache.xerces.dom.DeferredNode
TYPE_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
DeferredDocumentImpl()
          NON-DOM: Actually creating a Document is outside the DOM's spec, since it has to operate in terms of a particular implementation.
DeferredDocumentImpl(boolean namespacesEnabled)
          NON-DOM: Actually creating a Document is outside the DOM's spec, since it has to operate in terms of a particular implementation.
DeferredDocumentImpl(boolean namespaces, boolean grammarAccess)
          Experimental constructor.
 
Method Summary
 void appendChild(int parentIndex, int childIndex)
          Appends a child to the specified parent in the table.
 int cloneNode(int nodeIndex, boolean deep)
          Creates a clone of the specified node.
 int createDeferredAttribute(java.lang.String attrName, java.lang.String attrValue, boolean specified)
          Creates an attribute in the table.
 int createDeferredAttribute(java.lang.String attrName, java.lang.String attrURI, java.lang.String attrValue, boolean specified)
          Creates an attribute with a URI in the table.
 int createDeferredCDATASection(java.lang.String data)
          Creates a CDATA section node in the table.
 int createDeferredComment(java.lang.String data)
          Creates a comment node in the table.
 int createDeferredDocument()
          Creates a document node in the table.
 int createDeferredDocumentType(java.lang.String rootElementName, java.lang.String publicId, java.lang.String systemId)
          Creates a doctype.
 int createDeferredElement(java.lang.String elementName)
          Deprecated.  
 int createDeferredElement(java.lang.String elementURI, java.lang.String elementName)
          Creates an element node with a URI in the table.
 int createDeferredElement(java.lang.String elementURI, java.lang.String elementName, java.lang.Object type)
          Deprecated.  
 int createDeferredElementDefinition(java.lang.String elementName)
          Creates an element definition in the table.
 int createDeferredEntity(java.lang.String entityName, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName, java.lang.String baseURI)
          Creates an entity in the table.
 int createDeferredEntityReference(java.lang.String name, java.lang.String baseURI)
          Creates an entity reference node in the table.
 int createDeferredNotation(java.lang.String notationName, java.lang.String publicId, java.lang.String systemId, java.lang.String baseURI)
          Creates a notation in the table.
 int createDeferredProcessingInstruction(java.lang.String target, java.lang.String data)
          Creates a processing instruction node in the table.
 int createDeferredTextNode(java.lang.String data, boolean ignorableWhitespace)
          Creates a text node in the table.
 java.lang.String getAttribute(int elemIndex, java.lang.String name)
          Returns the attribute value of the given name.
 java.lang.String getDeferredEntityBaseURI(int entityIndex)
           
 DOMImplementation getImplementation()
          Retrieve information describing the abilities of this particular DOM implementation.
 int getLastChild(int nodeIndex)
          Returns the last child of the given node.
 int getLastChild(int nodeIndex, boolean free)
          Returns the last child of the given node.
 int getNodeExtra(int nodeIndex)
          Returns the extra info of the given node.
 int getNodeExtra(int nodeIndex, boolean free)
          Returns the extra info of the given node.
 int getNodeIndex()
          Returns the node index.
 java.lang.String getNodeName(int nodeIndex)
          Returns the name of the given node.
 java.lang.String getNodeName(int nodeIndex, boolean free)
          Returns the name of the given node.
 DeferredNode getNodeObject(int nodeIndex)
          Instantiates the requested node object.
 short getNodeType(int nodeIndex)
          Returns the type of the given node.
 short getNodeType(int nodeIndex, boolean free)
          Returns the type of the given node.
 java.lang.String getNodeURI(int nodeIndex)
          Returns the URI of the given node.
 java.lang.String getNodeURI(int nodeIndex, boolean free)
          Returns the URI of the given node.
 java.lang.String getNodeValue(int nodeIndex)
          Returns the value of the given node.
 java.lang.String getNodeValue(int nodeIndex, boolean free)
          Returns the value of the given node.
 java.lang.String getNodeValueString(int nodeIndex)
          Returns the real value of the given node.
 java.lang.String getNodeValueString(int nodeIndex, boolean free)
          Returns the real value of the given node.
 int getParentNode(int nodeIndex)
          Returns the parent node of the given node.
 int getParentNode(int nodeIndex, boolean free)
          Returns the parent node of the given node.
 int getPrevSibling(int nodeIndex)
          Returns the prev sibling of the given node.
 int getPrevSibling(int nodeIndex, boolean free)
          Returns the prev sibling of the given node.
 int getRealPrevSibling(int nodeIndex)
          Returns the real prev sibling of the given node, directly from the data structures.
 int getRealPrevSibling(int nodeIndex, boolean free)
          Returns the real prev sibling of the given node.
 java.lang.Object getTypeInfo(int nodeIndex)
          Clears the type info that is stored in the fNodeValue array
 int insertBefore(int parentIndex, int newChildIndex, int refChildIndex)
          Inserts a child before the specified node in the table.
 int lookupElementDefinition(java.lang.String elementName)
          Returns the index of the element definition in the table with the specified name index, or -1 if no such definition exists.
 void print()
          Prints out the tables.
 void putIdentifier(java.lang.String name, int elementNodeIndex)
          Registers an identifier name with a specified element node.
 void setAsLastChild(int parentIndex, int childIndex)
          Sets the last child of the parentIndex to childIndex.
 int setAttributeNode(int elemIndex, int attrIndex)
          Adds an attribute node to the specified element.
 int setDeferredAttribute(int elementNodeIndex, java.lang.String attrName, java.lang.String attrURI, java.lang.String attrValue, boolean specified)
          Deprecated.  
 int setDeferredAttribute(int elementNodeIndex, java.lang.String attrName, java.lang.String attrURI, java.lang.String attrValue, boolean specified, boolean id, java.lang.Object type)
          This method is used by the DOMParser to create attributes.
 void setEntityInfo(int currentEntityDecl, java.lang.String version, java.lang.String encoding)
           
 void setIdAttribute(int attrIndex)
          Sets type of attribute
 void setIdAttributeNode(int elemIndex, int attrIndex)
          Adds an attribute node to the specified element.
 void setInputEncoding(int currentEntityDecl, java.lang.String value)
          DOM Internal An attribute specifying the actual encoding of this document.
 void setInternalSubset(int doctypeIndex, java.lang.String subset)
           
 void setTypeInfo(int elementNodeIndex, java.lang.Object type)
           
 
Methods inherited from class org.apache.xerces.dom.DocumentImpl
cloneNode, createEvent, createNodeIterator, createNodeIterator, createRange, createTreeWalker, createTreeWalker
 
Methods inherited from class org.apache.xerces.dom.CoreDocumentImpl
abort, adoptNode, clone, createAttribute, createAttributeNS, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createDocumentType, createElement, createElementDefinition, createElementNS, createElementNS, createEntity, createEntityReference, createNotation, createProcessingInstruction, createTextNode, getAsync, getBaseURI, getDoctype, getDocumentElement, getDocumentURI, getDomConfig, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getErrorChecking, getFeature, getIdentifier, getIdentifiers, getInputEncoding, getNodeName, getNodeType, getOwnerDocument, getStandalone, getStrictErrorChecking, getTextContent, getUserData, getVersion, getXmlEncoding, getXmlStandalone, getXmlVersion, importNode, insertBefore, isValidQName, isXMLName, load, loadXML, normalizeDocument, putIdentifier, removeChild, removeIdentifier, renameNode, replaceChild, saveXML, setAsync, setDocumentURI, setEncoding, setErrorChecking, setInputEncoding, setStandalone, setStrictErrorChecking, setTextContent, setUserData, setVersion, setXmlEncoding, setXmlStandalone, setXmlVersion
 
Methods inherited from class org.apache.xerces.dom.ParentNode
getChildNodes, getFirstChild, getLastChild, getLength, hasChildNodes, isEqualNode, item, normalize, setReadOnly
 
Methods inherited from class org.apache.xerces.dom.ChildNode
getNextSibling, getParentNode, getPreviousSibling
 
Methods inherited from class org.apache.xerces.dom.NodeImpl
addEventListener, appendChild, compareDocumentPosition, compareTreePosition, dispatchEvent, getAttributes, getLocalName, getNamespaceURI, getNodeValue, getPrefix, getReadOnly, getUserData, getUserData, hasAttributes, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, needsSyncChildren, removeEventListener, setNodeValue, setPrefix, setUserData, setUserData, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

Constructor Detail

DeferredDocumentImpl

public DeferredDocumentImpl()
NON-DOM: Actually creating a Document is outside the DOM's spec, since it has to operate in terms of a particular implementation.


DeferredDocumentImpl

public DeferredDocumentImpl(boolean namespacesEnabled)
NON-DOM: Actually creating a Document is outside the DOM's spec, since it has to operate in terms of a particular implementation.


DeferredDocumentImpl

public DeferredDocumentImpl(boolean namespaces,
                            boolean grammarAccess)
Experimental constructor.

Method Detail

getImplementation

public DOMImplementation getImplementation()
Retrieve information describing the abilities of this particular DOM implementation. Intended to support applications that may be using DOMs retrieved from several different sources, potentially with different underlying representations.

Specified by:
getImplementation in interface Document
Overrides:
getImplementation in class DocumentImpl

createDeferredDocument

public int createDeferredDocument()
Creates a document node in the table.


createDeferredDocumentType

public int createDeferredDocumentType(java.lang.String rootElementName,
                                      java.lang.String publicId,
                                      java.lang.String systemId)
Creates a doctype.


setInternalSubset

public void setInternalSubset(int doctypeIndex,
                              java.lang.String subset)

createDeferredNotation

public int createDeferredNotation(java.lang.String notationName,
                                  java.lang.String publicId,
                                  java.lang.String systemId,
                                  java.lang.String baseURI)
Creates a notation in the table.


createDeferredEntity

public int createDeferredEntity(java.lang.String entityName,
                                java.lang.String publicId,
                                java.lang.String systemId,
                                java.lang.String notationName,
                                java.lang.String baseURI)
Creates an entity in the table.


getDeferredEntityBaseURI

public java.lang.String getDeferredEntityBaseURI(int entityIndex)

setEntityInfo

public void setEntityInfo(int currentEntityDecl,
                          java.lang.String version,
                          java.lang.String encoding)

setTypeInfo

public void setTypeInfo(int elementNodeIndex,
                        java.lang.Object type)

setInputEncoding

public void setInputEncoding(int currentEntityDecl,
                             java.lang.String value)
DOM Internal An attribute specifying the actual encoding of this document. This is null otherwise.
This attribute represents the property [character encoding scheme] defined in .


createDeferredEntityReference

public int createDeferredEntityReference(java.lang.String name,
                                         java.lang.String baseURI)
Creates an entity reference node in the table.


createDeferredElement

public int createDeferredElement(java.lang.String elementURI,
                                 java.lang.String elementName,
                                 java.lang.Object type)
Deprecated. 

Creates an element node with a URI in the table and type information.


createDeferredElement

public int createDeferredElement(java.lang.String elementName)
Deprecated. 

Creates an element node in the table.


createDeferredElement

public int createDeferredElement(java.lang.String elementURI,
                                 java.lang.String elementName)
Creates an element node with a URI in the table.


setDeferredAttribute

public int setDeferredAttribute(int elementNodeIndex,
                                java.lang.String attrName,
                                java.lang.String attrURI,
                                java.lang.String attrValue,
                                boolean specified,
                                boolean id,
                                java.lang.Object type)
This method is used by the DOMParser to create attributes.

Parameters:
elementNodeIndex -
attrName -
attrURI -
attrValue -
specified -
id -
type -
Returns:
int

setDeferredAttribute

public int setDeferredAttribute(int elementNodeIndex,
                                java.lang.String attrName,
                                java.lang.String attrURI,
                                java.lang.String attrValue,
                                boolean specified)
Deprecated. 

Sets an attribute on an element node.


createDeferredAttribute

public int createDeferredAttribute(java.lang.String attrName,
                                   java.lang.String attrValue,
                                   boolean specified)
Creates an attribute in the table.


createDeferredAttribute

public int createDeferredAttribute(java.lang.String attrName,
                                   java.lang.String attrURI,
                                   java.lang.String attrValue,
                                   boolean specified)
Creates an attribute with a URI in the table.


createDeferredElementDefinition

public int createDeferredElementDefinition(java.lang.String elementName)
Creates an element definition in the table.


createDeferredTextNode

public int createDeferredTextNode(java.lang.String data,
                                  boolean ignorableWhitespace)
Creates a text node in the table.


createDeferredCDATASection

public int createDeferredCDATASection(java.lang.String data)
Creates a CDATA section node in the table.


createDeferredProcessingInstruction

public int createDeferredProcessingInstruction(java.lang.String target,
                                               java.lang.String data)
Creates a processing instruction node in the table.


createDeferredComment

public int createDeferredComment(java.lang.String data)
Creates a comment node in the table.


cloneNode

public int cloneNode(int nodeIndex,
                     boolean deep)
Creates a clone of the specified node.


appendChild

public void appendChild(int parentIndex,
                        int childIndex)
Appends a child to the specified parent in the table.


setAttributeNode

public int setAttributeNode(int elemIndex,
                            int attrIndex)
Adds an attribute node to the specified element.


setIdAttributeNode

public void setIdAttributeNode(int elemIndex,
                               int attrIndex)
Adds an attribute node to the specified element.


setIdAttribute

public void setIdAttribute(int attrIndex)
Sets type of attribute


insertBefore

public int insertBefore(int parentIndex,
                        int newChildIndex,
                        int refChildIndex)
Inserts a child before the specified node in the table.


setAsLastChild

public void setAsLastChild(int parentIndex,
                           int childIndex)
Sets the last child of the parentIndex to childIndex.


getParentNode

public int getParentNode(int nodeIndex)
Returns the parent node of the given node. Calling this method does not free the parent index.


getParentNode

public int getParentNode(int nodeIndex,
                         boolean free)
Returns the parent node of the given node.

Parameters:
free - True to free parent node.

getLastChild

public int getLastChild(int nodeIndex)
Returns the last child of the given node.


getLastChild

public int getLastChild(int nodeIndex,
                        boolean free)
Returns the last child of the given node.

Parameters:
free - True to free child index.

getPrevSibling

public int getPrevSibling(int nodeIndex)
Returns the prev sibling of the given node. This is post-normalization of Text Nodes.


getPrevSibling

public int getPrevSibling(int nodeIndex,
                          boolean free)
Returns the prev sibling of the given node.

Parameters:
free - True to free sibling index.

getRealPrevSibling

public int getRealPrevSibling(int nodeIndex)
Returns the real prev sibling of the given node, directly from the data structures. Used by TextImpl#getNodeValue() to normalize values.


getRealPrevSibling

public int getRealPrevSibling(int nodeIndex,
                              boolean free)
Returns the real prev sibling of the given node.

Parameters:
free - True to free sibling index.

lookupElementDefinition

public int lookupElementDefinition(java.lang.String elementName)
Returns the index of the element definition in the table with the specified name index, or -1 if no such definition exists.


getNodeObject

public DeferredNode getNodeObject(int nodeIndex)
Instantiates the requested node object.


getNodeName

public java.lang.String getNodeName(int nodeIndex)
Returns the name of the given node.


getNodeName

public java.lang.String getNodeName(int nodeIndex,
                                    boolean free)
Returns the name of the given node.

Parameters:
free - True to free the string index.

getNodeValueString

public java.lang.String getNodeValueString(int nodeIndex)
Returns the real value of the given node.


getNodeValueString

public java.lang.String getNodeValueString(int nodeIndex,
                                           boolean free)
Returns the real value of the given node.

Parameters:
free - True to free the string index.

getNodeValue

public java.lang.String getNodeValue(int nodeIndex)
Returns the value of the given node.


getTypeInfo

public java.lang.Object getTypeInfo(int nodeIndex)
Clears the type info that is stored in the fNodeValue array

Parameters:
nodeIndex -
Returns:
Object - type information for the attribute/element node

getNodeValue

public java.lang.String getNodeValue(int nodeIndex,
                                     boolean free)
Returns the value of the given node.

Parameters:
free - True to free the value index.

getNodeExtra

public int getNodeExtra(int nodeIndex)
Returns the extra info of the given node. Used by AttrImpl to store specified value (1 == true).


getNodeExtra

public int getNodeExtra(int nodeIndex,
                        boolean free)
Returns the extra info of the given node.

Parameters:
free - True to free the value index.

getNodeType

public short getNodeType(int nodeIndex)
Returns the type of the given node.


getNodeType

public short getNodeType(int nodeIndex,
                         boolean free)
Returns the type of the given node.

Parameters:
free - True to free type index.

getAttribute

public java.lang.String getAttribute(int elemIndex,
                                     java.lang.String name)
Returns the attribute value of the given name.


getNodeURI

public java.lang.String getNodeURI(int nodeIndex)
Returns the URI of the given node.


getNodeURI

public java.lang.String getNodeURI(int nodeIndex,
                                   boolean free)
Returns the URI of the given node.

Parameters:
free - True to free URI index.

putIdentifier

public void putIdentifier(java.lang.String name,
                          int elementNodeIndex)
Registers an identifier name with a specified element node.


print

public void print()
Prints out the tables.


getNodeIndex

public int getNodeIndex()
Returns the node index.

Specified by:
getNodeIndex in interface DeferredNode