Package org.apache.xerces.dom
Class DeferredDocumentImpl
java.lang.Object
org.apache.xerces.dom.NodeImpl
org.apache.xerces.dom.ChildNode
org.apache.xerces.dom.ParentNode
org.apache.xerces.dom.CoreDocumentImpl
org.apache.xerces.dom.DocumentImpl
org.apache.xerces.dom.DeferredDocumentImpl
- All Implemented Interfaces:
Serializable
,Cloneable
,DeferredNode
,Document
,DocumentEvent
,EventTarget
,Node
,NodeList
,DocumentRange
,DocumentTraversal
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.
INTERNAL:
- Usage of this class is not supported. It may be altered or removed at any time.
- Since:
- PR-DOM-Level-1-19980818.
- Version:
- $Id: DeferredDocumentImpl.java 965320 2010-07-18 23:25:54Z mrglavas $
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final int
Chunk mask.protected static final int
Chunk shift.protected static final int
Chunk size.protected int
Identifier count.protected int[]
Identifier element indexes.protected String[]
Identifier name indexes.protected boolean
DOM2: For namespace support in the deferred case.protected int
Node count.protected int[][]
Extra data.protected int[][]
Node first children.protected Object[][]
Node names.protected int[][]
Node parents.protected int[][]
Node prev siblings.protected int[][]
Node types.protected Object[][]
Node namespace URI.protected Object[][]
Node values.protected static final int
Initial chunk size.Fields inherited from class org.apache.xerces.dom.DocumentImpl
eventListeners, iteratorReferenceQueue, iterators, mutationEvents, rangeReferenceQueue, ranges
Fields inherited from class org.apache.xerces.dom.CoreDocumentImpl
actualEncoding, allowGrammarAccess, changes, docElement, docType, encoding, errorChecking, fDocumentURI, identifiers, standalone, userData, version, xmlVersionChanged
Fields inherited from class org.apache.xerces.dom.ParentNode
firstChild, fNodeListCache, ownerDocument
Fields inherited from class org.apache.xerces.dom.ChildNode
nextSibling, previousSibling
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, FIRSTCHILD, flags, HASSTRING, ID, IGNORABLEWS, NORMALIZED, OWNED, ownerNode, READONLY, SPECIFIED, SYNCCHILDREN, SYNCDATA, 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
ConstructorsConstructorDescriptionNON-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
Modifier and TypeMethodDescriptionvoid
appendChild
(int parentIndex, int childIndex) Appends a child to the specified parent in the table.protected static int
binarySearch
(int[] values, int start, int end, int target) Performs a binary search for a target value in an array of values.int
cloneNode
(int nodeIndex, boolean deep) Creates a clone of the specified node.int
createDeferredAttribute
(String attrName, String attrValue, boolean specified) Creates an attribute in the table.int
createDeferredAttribute
(String attrName, String attrURI, String attrValue, boolean specified) Creates an attribute with a URI in the table.int
Creates a CDATA section node in the table.int
createDeferredComment
(String data) Creates a comment node in the table.int
Creates a document node in the table.int
createDeferredDocumentType
(String rootElementName, String publicId, String systemId) Creates a doctype.int
createDeferredElement
(String elementName) Deprecated.int
createDeferredElement
(String elementURI, String elementName) Creates an element node with a URI in the table.int
createDeferredElement
(String elementURI, String elementName, Object type) Deprecated.int
createDeferredElementDefinition
(String elementName) Creates an element definition in the table.int
createDeferredEntity
(String entityName, String publicId, String systemId, String notationName, String baseURI) Creates an entity in the table.int
createDeferredEntityReference
(String name, String baseURI) Creates an entity reference node in the table.int
createDeferredNotation
(String notationName, String publicId, String systemId, String baseURI) Creates a notation in the table.int
createDeferredProcessingInstruction
(String target, String data) Creates a processing instruction node in the table.int
createDeferredTextNode
(String data, boolean ignorableWhitespace) Creates a text node in the table.protected int
createNode
(short nodeType) Creates a node of the specified type.protected void
ensureCapacity
(int chunk) Ensures that the internal tables are large enough.getAttribute
(int elemIndex, String name) Returns the attribute value of the given name.getDeferredEntityBaseURI
(int entityIndex) 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
Returns the node index.getNodeName
(int nodeIndex) Returns the name of the given node.getNodeName
(int nodeIndex, boolean free) Returns the name of the given node.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.getNodeURI
(int nodeIndex) Returns the URI of the given node.getNodeURI
(int nodeIndex, boolean free) Returns the URI of the given node.getNodeValue
(int nodeIndex) Returns the value of the given node.getNodeValue
(int nodeIndex, boolean free) Returns the value of the given node.getNodeValueString
(int nodeIndex) Returns the real value of the given node.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.getTypeInfo
(int nodeIndex) Clears the type info that is stored in the fNodeValue arrayint
insertBefore
(int parentIndex, int newChildIndex, int refChildIndex) Inserts a child before the specified node in the table.int
lookupElementDefinition
(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
(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, String attrName, String attrURI, String attrValue, boolean specified) Deprecated.int
setDeferredAttribute
(int elementNodeIndex, String attrName, String attrURI, String attrValue, boolean specified, boolean id, Object type) This method is used by the DOMParser to create attributes.void
setEntityInfo
(int currentEntityDecl, String version, String encoding) void
setIdAttribute
(int attrIndex) Sets type of attributevoid
setIdAttributeNode
(int elemIndex, int attrIndex) Adds an attribute node to the specified element.void
setInputEncoding
(int currentEntityDecl, String value) DOM Internal An attribute specifying the actual encoding of this document.void
setInternalSubset
(int doctypeIndex, String subset) void
setTypeInfo
(int elementNodeIndex, Object type) protected void
Synchronizes the node's children with the internal structure.protected final void
synchronizeChildren
(AttrImpl a, int nodeIndex) Synchronizes the node's children with the internal structure.protected final void
synchronizeChildren
(ParentNode p, int nodeIndex) Synchronizes the node's children with the internal structure.protected void
Synchronizes the node's data.Methods inherited from class org.apache.xerces.dom.DocumentImpl
addEventListener, cloneNode, copyEventListeners, createEvent, createNodeIterator, createNodeIterator, createRange, createTreeWalker, createTreeWalker, dispatchAggregateEvents, dispatchAggregateEvents, dispatchEvent, dispatchEventToSubtree, dispatchingEventToSubtree, getEventListeners, removeEventListener, saveEnclosingAttr, setEventListeners
Methods inherited from class org.apache.xerces.dom.CoreDocumentImpl
abort, adoptNode, callUserDataHandlers, canRenameElements, changed, changes, checkDOMNSErr, checkNamespaceWF, checkQName, clearIdentifiers, clone, cloneNode, 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, getNodeNumber, getNodeNumber, getNodeType, getOwnerDocument, getStandalone, getStrictErrorChecking, getTextContent, getUserData, getUserData, getUserDataRecord, getVersion, getXmlEncoding, getXmlStandalone, getXmlVersion, importNode, insertBefore, isKidOK, isValidQName, isXMLName, load, loadXML, normalizeDocument, putIdentifier, removeChild, removeIdentifier, renameNode, replaceChild, saveXML, setAsync, setDocumentURI, setEncoding, setErrorChecking, setInputEncoding, setStandalone, setStrictErrorChecking, setTextContent, setUserData, setUserData, setVersion, setXmlEncoding, setXmlStandalone, setXmlVersion, undeferChildren
Methods inherited from class org.apache.xerces.dom.ParentNode
getChildNodes, getChildNodesUnoptimized, getFirstChild, getLastChild, getLength, hasChildNodes, isEqualNode, item, normalize, setOwnerDocument, 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, getContainer, getLocalName, getNamespaceURI, getNodeValue, getPrefix, getReadOnly, getUserData, getUserData, getUserDataRecord, hasAttributes, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, needsSyncChildren, removeEventListener, setNodeValue, setPrefix, setUserData, setUserData, toString
Methods inherited from class java.lang.Object
equals, finalize, 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
-
Field Details
-
CHUNK_SHIFT
protected static final int CHUNK_SHIFTChunk shift.- See Also:
-
CHUNK_SIZE
protected static final int CHUNK_SIZEChunk size.- See Also:
-
CHUNK_MASK
protected static final int CHUNK_MASKChunk mask.- See Also:
-
INITIAL_CHUNK_COUNT
protected static final int INITIAL_CHUNK_COUNTInitial chunk size.- See Also:
-
fNodeCount
protected transient int fNodeCountNode count. -
fNodeType
protected transient int[][] fNodeTypeNode types. -
fNodeName
Node names. -
fNodeValue
Node values. -
fNodeParent
protected transient int[][] fNodeParentNode parents. -
fNodeLastChild
protected transient int[][] fNodeLastChildNode first children. -
fNodePrevSib
protected transient int[][] fNodePrevSibNode prev siblings. -
fNodeURI
Node namespace URI. -
fNodeExtra
protected transient int[][] fNodeExtraExtra data. -
fIdCount
protected transient int fIdCountIdentifier count. -
fIdName
Identifier name indexes. -
fIdElement
protected transient int[] fIdElementIdentifier element indexes. -
fNamespacesEnabled
protected boolean fNamespacesEnabledDOM2: For namespace support in the deferred case.
-
-
Constructor Details
-
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 Details
-
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 interfaceDocument
- Overrides:
getImplementation
in classDocumentImpl
-
createDeferredDocument
public int createDeferredDocument()Creates a document node in the table. -
createDeferredDocumentType
Creates a doctype. -
setInternalSubset
-
createDeferredNotation
public int createDeferredNotation(String notationName, String publicId, String systemId, String baseURI) Creates a notation in the table. -
createDeferredEntity
public int createDeferredEntity(String entityName, String publicId, String systemId, String notationName, String baseURI) Creates an entity in the table. -
getDeferredEntityBaseURI
-
setEntityInfo
-
setTypeInfo
-
setInputEncoding
DOM Internal An attribute specifying the actual encoding of this document. This isnull
otherwise.
This attribute represents the property [character encoding scheme] defined in . -
createDeferredEntityReference
Creates an entity reference node in the table. -
createDeferredElement
Deprecated.Creates an element node with a URI in the table and type information. -
createDeferredElement
Deprecated.Creates an element node in the table. -
createDeferredElement
Creates an element node with a URI in the table. -
setDeferredAttribute
public int setDeferredAttribute(int elementNodeIndex, String attrName, String attrURI, String attrValue, boolean specified, boolean id, 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, String attrName, String attrURI, String attrValue, boolean specified) Deprecated.Sets an attribute on an element node. -
createDeferredAttribute
Creates an attribute in the table. -
createDeferredAttribute
public int createDeferredAttribute(String attrName, String attrURI, String attrValue, boolean specified) Creates an attribute with a URI in the table. -
createDeferredElementDefinition
Creates an element definition in the table. -
createDeferredTextNode
Creates a text node in the table. -
createDeferredCDATASection
Creates a CDATA section node in the table. -
createDeferredProcessingInstruction
Creates a processing instruction node in the table. -
createDeferredComment
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
Returns the index of the element definition in the table with the specified name index, or -1 if no such definition exists. -
getNodeObject
Instantiates the requested node object. -
getNodeName
Returns the name of the given node. -
getNodeName
Returns the name of the given node.- Parameters:
free
- True to free the string index.
-
getNodeValueString
Returns the real value of the given node. -
getNodeValueString
Returns the real value of the given node.- Parameters:
free
- True to free the string index.
-
getNodeValue
Returns the value of the given node. -
getTypeInfo
Clears the type info that is stored in the fNodeValue array- Parameters:
nodeIndex
-- Returns:
- Object - type information for the attribute/element node
-
getNodeValue
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
Returns the attribute value of the given name. -
getNodeURI
Returns the URI of the given node. -
getNodeURI
Returns the URI of the given node.- Parameters:
free
- True to free URI index.
-
putIdentifier
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 interfaceDeferredNode
-
synchronizeData
protected void synchronizeData()Synchronizes the node's data.- Overrides:
synchronizeData
in classNodeImpl
-
synchronizeChildren
protected void synchronizeChildren()Synchronizes the node's children with the internal structure. Fluffing the children at once solves a lot of work to keep the two structures in sync. The problem gets worse when editing the tree -- this makes it a lot easier.- Overrides:
synchronizeChildren
in classParentNode
-
synchronizeChildren
Synchronizes the node's children with the internal structure. Fluffing the children at once solves a lot of work to keep the two structures in sync. The problem gets worse when editing the tree -- this makes it a lot easier. This is not directly used in this class but this method is here so that it can be shared by all deferred subclasses of AttrImpl. -
synchronizeChildren
Synchronizes the node's children with the internal structure. Fluffing the children at once solves a lot of work to keep the two structures in sync. The problem gets worse when editing the tree -- this makes it a lot easier. This is not directly used in this class but this method is here so that it can be shared by all deferred subclasses of ParentNode. -
ensureCapacity
protected void ensureCapacity(int chunk) Ensures that the internal tables are large enough. -
createNode
protected int createNode(short nodeType) Creates a node of the specified type. -
binarySearch
protected static int binarySearch(int[] values, int start, int end, int target) Performs a binary search for a target value in an array of values. The array of values must be in ascending sorted order before calling this method and all array values must be non-negative.- Parameters:
values
- The array of values to search.start
- The starting offset of the search.end
- The ending offset of the search.target
- The target value.- Returns:
- This function will return the first occurrence of the target value, or -1 if the target value cannot be found.
-