## org.exist.memtree
Class DocumentImpl

    java.lang.Object
      org.exist.memtree.NodeImpl
          org.exist.memtree.DocumentImpl

All Implemented Interfaces:
  java.lang.Comparable, org.w3c.dom.Document, Item, org.w3c.dom.Node, NodeValue, QNameable, Sequence

public class DocumentImpl
extends NodeImpl
implements org.w3c.dom.Document

An in-memory implementation of Document. This implementation stores all node data in the document object. Nodes from another document, i.e. a persistent document in the database, can be stored as reference nodes, i.e. the nodes are not copied into this document object. Instead a reference is inserted which will only be expanded during serialization.

Author:
  wolf

Field Summary

Fields inherited from class org.exist.memtree.NodeImpl
`NAMESPACE_NODE, REFERENCE_NODE`

Fields inherited from interface org.w3c.dom.Node
`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

Fields inherited from interface org.exist.xquery.value.NodeValue
`IN_MEMORY_NODE, PERSISTENT_NODE`

Fields inherited from interface org.exist.xquery.value.Sequence
`EMPTY_SEQUENCE`

Constructor Summary
`DocumentImpl(XQueryContext context)`

Method Summary
`int` `addAttribute(int nodeNr, QName qname, java.lang.String value)`
`void` `addChars(int nodeNr, char[] ch, int start, int len)`
`void` `addChars(int nodeNr, java.lang.CharSequence s)`
`int` `addNamespace(int nodeNr, QName qname)`
`int` `addNode(short kind, short level, QName qname)`
`void` `addReferenceNode(int nodeNr, NodeProxy proxy)`
`org.w3c.dom.Node` `adoptNode(org.w3c.dom.Node source)` ? @see org.w3c.dom.Document#adoptNode(org.w3c.dom.Node)
`void` `appendChars(int nodeNr, char[] ch, int start, int len)`
`void` `appendChars(int nodeNr, java.lang.CharSequence s)`
`void` `copyTo(NodeImpl node, DocumentBuilderReceiver receiver)` Copy the document fragment starting at the specified node to the given document builder.
`org.w3c.dom.Attr` `createAttribute(java.lang.String arg0)`
`org.w3c.dom.Attr` `createAttributeNS(java.lang.String arg0, java.lang.String arg1)`
`org.w3c.dom.CDATASection` `createCDATASection(java.lang.String arg0)`
`org.w3c.dom.Comment` `createComment(java.lang.String arg0)`
`org.w3c.dom.DocumentFragment` `createDocumentFragment()`
`org.w3c.dom.Element` `createElement(java.lang.String arg0)`
`org.w3c.dom.Element` `createElementNS(java.lang.String arg0, java.lang.String arg1)`
`org.w3c.dom.EntityReference` `createEntityReference(java.lang.String arg0)`
`org.w3c.dom.ProcessingInstruction` `createProcessingInstruction(java.lang.String arg0, java.lang.String arg1)`
`org.w3c.dom.Text` `createTextNode(java.lang.String arg0)`
`void` `expand()` Expand all reference nodes in the current document, i.e.
`DocumentImpl` `expandRefs(NodeImpl rootNode)`
`NodeImpl` `getAttribute(int nodeNr)`
`int` `getAttributesCountFor(int nodeNumber)`
`int` `getChildCount()`
`int` `getChildCountFor(int nr)`
`org.w3c.dom.DocumentType` `getDoctype()`
`org.w3c.dom.Element` `getDocumentElement()`
`java.lang.String` `getDocumentURI()` ? @see org.w3c.dom.Document#getDocumentURI()
`org.w3c.dom.DOMConfiguration` `getDomConfig()` ? @see org.w3c.dom.Document#getDomConfig()
`org.w3c.dom.Element` `getElementById(java.lang.String arg0)`
`org.w3c.dom.NodeList` `getElementsByTagName(java.lang.String name)`
`org.w3c.dom.NodeList` `getElementsByTagNameNS(java.lang.String arg0, java.lang.String arg1)`
`org.w3c.dom.Node` `getFirstChild()`
`int` `getFirstChildFor(int nodeNumber)`
`org.w3c.dom.DOMImplementation` `getImplementation()`
`java.lang.String` `getInputEncoding()` ? @see org.w3c.dom.Document#getInputEncoding()
`int` `getLastNode()`
`NodeImpl` `getNamespaceNode(int nodeNr)`
`int` `getNextSiblingFor(int nodeNumber)`
`NodeImpl` `getNode(int nodeNr)`
`short` `getNodeType(int nodeNr)`
`org.w3c.dom.Document` `getOwnerDocument()`
`org.w3c.dom.Node` `getParentNode()`
`int` `getParentNodeFor(int nodeNumber)`
`int` `getSize()`
`boolean` `getStrictErrorChecking()` ? @see org.w3c.dom.Document#getStrictErrorChecking()
`short` `getTreeLevel(int nodeNr)`
`java.lang.String` `getXmlEncoding()` ? @see org.w3c.dom.Document#getXmlEncoding()
`boolean` `getXmlStandalone()` ? @see org.w3c.dom.Document#getXmlStandalone()
`java.lang.String` `getXmlVersion()` ? @see org.w3c.dom.Document#getXmlVersion()
`org.w3c.dom.Node` `importNode(org.w3c.dom.Node arg0, boolean arg1)`
`Int2ObjectHashMap` `makePersistent()`
`void` `normalizeDocument()` ? @see org.w3c.dom.Document#normalizeDocument()
`org.w3c.dom.Node` `renameNode(org.w3c.dom.Node n, java.lang.String namespaceURI, java.lang.String qualifiedName)` ? @see org.w3c.dom.Document#renameNode(org.w3c.dom.Node, java.lang.String, java.lang.String)
`void` `replaceReferenceNode(int nodeNr, java.lang.CharSequence ch)`
`void` `reset()`
`void` `setContext(XQueryContext context)`
`void` `setDocumentURI(java.lang.String documentURI)` ? @see org.w3c.dom.Document#setDocumentURI(java.lang.String)
`void` `setStrictErrorChecking(boolean strictErrorChecking)` ? @see org.w3c.dom.Document#setStrictErrorChecking(boolean)
`void` `setXmlStandalone(boolean xmlStandalone)` ? @see org.w3c.dom.Document#setXmlStandalone(boolean)
`void` `setXmlVersion(java.lang.String xmlVersion)` ? @see org.w3c.dom.Document#setXmlVersion(java.lang.String)
`void` `streamTo(Serializer serializer, NodeImpl node, Receiver receiver)` Stream the specified document fragment to a receiver.
`java.lang.String` `toString()`

Methods inherited from class org.exist.memtree.NodeImpl

`add, addAll, addContextNode, after, appendChild, atomize, before, clearContext, cloneNode, compareDocumentPosition, compareTo, conversionPreference, convertTo, copyTo, deepCopy, effectiveBooleanValue, equals, equals, getAttributes, getBaseURI, getCardinality, getChildNodes, getDocument, getDocumentSet, getFeature, getImplementationType, getItemType, getLastChild, getLength, getLocalName, getNamespaceURI, getNextSibling, getNode, getNodeName, getNodeNumber, getNodeType, getNodeValue, getPrefix, getPreviousSibling, getQName, getStringValue, getTextContent, getType, getUserData, hasAttributes, hasChildNodes, hasMany, hasOne, insertBefore, isCached, isDefaultNamespace, isEmpty, isEqualNode, isPersistentSet, isSameNode, isSupported, itemAt, iterate, lookupNamespaceURI, lookupPrefix, normalize, removeChild, removeDuplicates, replaceChild, setIsCached, setNodeValue, setPrefix, setSelfAsContext, setTextContent, setUserData, streamTo, toJavaObject, toNodeSet, toSAX, toSequence, unorderedIterator`

Methods inherited from class java.lang.Object
`getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.w3c.dom.Node
`appendChild, cloneNode, getAttributes, getChildNodes, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix`

Constructor Detail

### DocumentImpl

    public DocumentImpl(XQueryContext context)

Method Detail

### reset

    public void reset()

### getSize

    public int getSize()

### addNode

    public int addNode(short kind,
                       short level,
                       QName qname)

### addChars

    public void addChars(int nodeNr,
                         char[] ch,
                         int start,
                         int len)

### addChars

    public void addChars(int nodeNr,
                         java.lang.CharSequence s)

### appendChars

    public void appendChars(int nodeNr,
                            char[] ch,
                            int start,
                            int len)

### appendChars

    public void appendChars(int nodeNr,
                            java.lang.CharSequence s)

### addReferenceNode

    public void addReferenceNode(int nodeNr,
                                 NodeProxy proxy)

### replaceReferenceNode

    public void replaceReferenceNode(int nodeNr,
                                     java.lang.CharSequence ch)

### addAttribute

    public int addAttribute(int nodeNr,
                            QName qname,
                            java.lang.String value)
                     throws org.w3c.dom.DOMException

  Throws:
    `org.w3c.dom.DOMException`

### addNamespace

    public int addNamespace(int nodeNr,
                            QName qname)

### getTreeLevel

    public short getTreeLevel(int nodeNr)

### getLastNode

    public int getLastNode()

### getNodeType

    public short getNodeType(int nodeNr)

### getAttribute

    public NodeImpl getAttribute(int nodeNr)
                          throws org.w3c.dom.DOMException

  Throws:
    `org.w3c.dom.DOMException`

### getNamespaceNode

    public NodeImpl getNamespaceNode(int nodeNr)
                              throws org.w3c.dom.DOMException

  Throws:
    `org.w3c.dom.DOMException`

### getNode

    public NodeImpl getNode(int nodeNr)
                     throws org.w3c.dom.DOMException

  Throws:
    `org.w3c.dom.DOMException`

### getParentNode

    public org.w3c.dom.Node getParentNode()

  Specified by:
    `getParentNode` in interface `org.w3c.dom.Node`
  Overrides:
    `getParentNode` in class `NodeImpl`

### getDoctype

    public org.w3c.dom.DocumentType getDoctype()

  Specified by:
    `getDoctype` in interface `org.w3c.dom.Document`

### getImplementation

    public org.w3c.dom.DOMImplementation getImplementation()

  Specified by:
    `getImplementation` in interface `org.w3c.dom.Document`

### getDocumentElement

    public org.w3c.dom.Element getDocumentElement()

  Specified by:
    `getDocumentElement` in interface `org.w3c.dom.Document`

### getFirstChild

    public org.w3c.dom.Node getFirstChild()

  Specified by:
    `getFirstChild` in interface `org.w3c.dom.Node`
  Overrides:
    `getFirstChild` in class `NodeImpl`

### getAttributesCountFor

    public int getAttributesCountFor(int nodeNumber)

### getChildCountFor

    public int getChildCountFor(int nr)

### getFirstChildFor

    public int getFirstChildFor(int nodeNumber)

### getNextSiblingFor

    public int getNextSiblingFor(int nodeNumber)

### getParentNodeFor

    public int getParentNodeFor(int nodeNumber)

### createElement

    public org.w3c.dom.Element createElement(java.lang.String arg0)
                                      throws org.w3c.dom.DOMException

  Specified by:
    `createElement` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createDocumentFragment

    public org.w3c.dom.DocumentFragment createDocumentFragment()

  Specified by:
    `createDocumentFragment` in interface `org.w3c.dom.Document`

### createTextNode

    public org.w3c.dom.Text createTextNode(java.lang.String arg0)

  Specified by:
    `createTextNode` in interface `org.w3c.dom.Document`

### createComment

    public org.w3c.dom.Comment createComment(java.lang.String arg0)

  Specified by:
    `createComment` in interface `org.w3c.dom.Document`

### createCDATASection

    public org.w3c.dom.CDATASection createCDATASection(java.lang.String arg0)
                                                throws org.w3c.dom.DOMException

  Specified by:
    `createCDATASection` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createProcessingInstruction

    public org.w3c.dom.ProcessingInstruction createProcessingInstruction(java.lang.String arg0,
                                                                         java.lang.String arg1)
                                                                  throws org.w3c.dom.DOMException

  Specified by:
    `createProcessingInstruction` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createAttribute

    public org.w3c.dom.Attr createAttribute(java.lang.String arg0)
                                     throws org.w3c.dom.DOMException

  Specified by:
    `createAttribute` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createEntityReference

    public org.w3c.dom.EntityReference createEntityReference(java.lang.String arg0)
                                                      throws org.w3c.dom.DOMException

  Specified by:
    `createEntityReference` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### getElementsByTagName

    public org.w3c.dom.NodeList getElementsByTagName(java.lang.String name)

  Specified by:
    `getElementsByTagName` in interface `org.w3c.dom.Document`

### importNode

    public org.w3c.dom.Node importNode(org.w3c.dom.Node arg0,
                                       boolean arg1)
                                throws org.w3c.dom.DOMException

  Specified by:
    `importNode` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createElementNS

    public org.w3c.dom.Element createElementNS(java.lang.String arg0,
                                               java.lang.String arg1)
                                        throws org.w3c.dom.DOMException

  Specified by:
    `createElementNS` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createAttributeNS

    public org.w3c.dom.Attr createAttributeNS(java.lang.String arg0,
                                              java.lang.String arg1)
                                       throws org.w3c.dom.DOMException

  Specified by:
    `createAttributeNS` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### getElementsByTagNameNS

    public org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String arg0,
                                                       java.lang.String arg1)

  Specified by:
    `getElementsByTagNameNS` in interface `org.w3c.dom.Document`

### getElementById

    public org.w3c.dom.Element getElementById(java.lang.String arg0)

  Specified by:
    `getElementById` in interface `org.w3c.dom.Document`

### getOwnerDocument

    public org.w3c.dom.Document getOwnerDocument()

  Specified by:
    `getOwnerDocument` in interface `org.w3c.dom.Node`
  Overrides:
    `getOwnerDocument` in class `NodeImpl`

### copyTo

    public void copyTo(NodeImpl node,
                       DocumentBuilderReceiver receiver)
                throws org.xml.sax.SAXException

  Copy the document fragment starting at the specified node to the given document builder.

  Parameters:
    `node` -
    `receiver` -
  Throws:
    `org.xml.sax.SAXException`

### expand

    public void expand()
                throws org.w3c.dom.DOMException

  Expand all reference nodes in the current document, i.e. replace them by real nodes. Reference nodes are just pointers to nodes from other documents stored in the database. The XQuery engine uses reference nodes to speed up the creation of temporary doc fragments. This method creates a new copy of the document contents and expands all reference nodes.

  Overrides:
    `expand` in class `NodeImpl`
  Throws:
    `org.w3c.dom.DOMException`

### expandRefs

    public DocumentImpl expandRefs(NodeImpl rootNode)
                            throws org.w3c.dom.DOMException

  Throws:
    `org.w3c.dom.DOMException`

### streamTo

    public void streamTo(Serializer serializer,
                         NodeImpl node,
                         Receiver receiver)
                  throws org.xml.sax.SAXException

  Stream the specified document fragment to a receiver. This method is called by the serializer to output in-memory nodes.

  Parameters:
    `serializer` -
    `node` -
    `receiver` -
  Throws:
    `org.xml.sax.SAXException`

### makePersistent

    public Int2ObjectHashMap makePersistent()
                                     throws XPathException

  Throws:
    `XPathException`

### getChildCount

    public int getChildCount()

### getInputEncoding

    public java.lang.String getInputEncoding()

  ? @see org.w3c.dom.Document#getInputEncoding()

### getXmlEncoding

    public java.lang.String getXmlEncoding()

  ? @see org.w3c.dom.Document#getXmlEncoding()

### getXmlStandalone

    public boolean getXmlStandalone()

  ? @see org.w3c.dom.Document#getXmlStandalone()

### setXmlStandalone

    public void setXmlStandalone(boolean xmlStandalone)
                          throws org.w3c.dom.DOMException

  ? @see org.w3c.dom.Document#setXmlStandalone(boolean)

  Throws:
    `org.w3c.dom.DOMException`

### getXmlVersion

    public java.lang.String getXmlVersion()

  ? @see org.w3c.dom.Document#getXmlVersion()

### setXmlVersion

    public void setXmlVersion(java.lang.String xmlVersion)
                       throws org.w3c.dom.DOMException

  ? @see org.w3c.dom.Document#setXmlVersion(java.lang.String)

  Throws:
    `org.w3c.dom.DOMException`

### getStrictErrorChecking

    public boolean getStrictErrorChecking()

  ? @see org.w3c.dom.Document#getStrictErrorChecking()

### setStrictErrorChecking

    public void setStrictErrorChecking(boolean strictErrorChecking)

  ? @see org.w3c.dom.Document#setStrictErrorChecking(boolean)

### getDocumentURI

    public java.lang.String getDocumentURI()

  ? @see org.w3c.dom.Document#getDocumentURI()

### setDocumentURI

    public void setDocumentURI(java.lang.String documentURI)

  ? @see org.w3c.dom.Document#setDocumentURI(java.lang.String)

### adoptNode

    public org.w3c.dom.Node adoptNode(org.w3c.dom.Node source)
                               throws org.w3c.dom.DOMException

  ? @see org.w3c.dom.Document#adoptNode(org.w3c.dom.Node)

  Throws:
    `org.w3c.dom.DOMException`

### getDomConfig

    public org.w3c.dom.DOMConfiguration getDomConfig()

  ? @see org.w3c.dom.Document#getDomConfig()

### normalizeDocument

    public void normalizeDocument()

  ? @see org.w3c.dom.Document#normalizeDocument()

### renameNode

    public org.w3c.dom.Node renameNode(org.w3c.dom.Node n,
                                       java.lang.String namespaceURI,
                                       java.lang.String qualifiedName)
                                throws org.w3c.dom.DOMException

  ? @see org.w3c.dom.Document#renameNode(org.w3c.dom.Node, java.lang.String, java.lang.String)

  Throws:
    `org.w3c.dom.DOMException`

### setContext

    public void setContext(XQueryContext context)

### toString

    public java.lang.String toString()

Copyright (C) Wolfgang Meier. All rights reserved.