Class NodeOverNodeInfo

  • All Implemented Interfaces:
    org.w3c.dom.Node
    Direct Known Subclasses:
    AttrOverNodeInfo, DocumentOverNodeInfo, ElementOverNodeInfo, PIOverNodeInfo, TextOverNodeInfo

    public abstract class NodeOverNodeInfo
    extends java.lang.Object
    implements org.w3c.dom.Node
    This class implements the DOM Node interface as a wrapper around a Saxon NodeInfo object.

    The class provides read-only access to the tree; methods that request updates all fail with an UnsupportedOperationException.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected NodeInfo 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.w3c.dom.Node appendChild​(org.w3c.dom.Node newChild)
      Adds the node newChild to the end of the list of children of this node.
      org.w3c.dom.Node cloneNode​(boolean deep)
      Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
      short compareDocumentPosition​(org.w3c.dom.Node other)
      Compare the position of the (other) node in document order with the reference node (this node).
      protected static void disallowUpdate()
      Internal method used to indicate that update operations are not allowed
      boolean equals​(java.lang.Object obj)
      The equals() method returns true for two Node objects that represent the same conceptual DOM Node.
      org.w3c.dom.NamedNodeMap getAttributes()
      Return a NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise.
      java.lang.String getBaseURI()
      Get the base URI for the node.
      org.w3c.dom.NodeList getChildNodes()
      Return a NodeList that contains all children of this node.
      java.lang.Object getFeature​(java.lang.String feature, java.lang.String version)
      Get a feature of this node.
      org.w3c.dom.Node getFirstChild()
      Get first child
      org.w3c.dom.Node getLastChild()
      Get last child
      java.lang.String getLocalName()
      Get the local name of this node, following the DOM rules
      java.lang.String getNamespaceURI()
      The namespace URI of this node, or null if it is unspecified.
      org.w3c.dom.Node getNextSibling()
      Get next sibling node
      java.lang.String getNodeName()
      Get the name of this node, following the DOM rules
      short getNodeType()
      Get the type of this node (node kind, in XPath terminology).
      java.lang.String getNodeValue()
      Get the node value (as defined in the DOM).
      org.w3c.dom.Document getOwnerDocument()
      Return the Document object associated with this node.
      org.w3c.dom.Node getParentNode()
      Find the parent node of this node.
      java.lang.String getPrefix()
      The namespace prefix of this node, or null if it is unspecified.
      org.w3c.dom.Node getPreviousSibling()
      Get the previous sibling of the node
      java.lang.String getTextContent()
      Get the text content of a node.
      NodeInfo getUnderlyingNodeInfo()
      Get the Saxon NodeInfo object representing this node
      java.lang.Object getUserData​(java.lang.String key)
      Get user data associated with this node.
      boolean hasAttributes()
      Returns whether this node has any attributes.
      boolean hasChildNodes()
      Determine whether the node has any children.
      int hashCode()
      Return a hashCode
      org.w3c.dom.Node insertBefore​(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)
      Insert the node newChild before the existing child node refChild.
      boolean isDefaultNamespace​(java.lang.String namespaceURI)
      Test whether a particular namespace is the default namespace.
      boolean isEqualNode​(org.w3c.dom.Node arg)
      Compare whether two nodes have the same content.
      boolean isSameNode​(org.w3c.dom.Node other)
      Determine whether this is the same node as another node.
      boolean isSupported​(java.lang.String feature, java.lang.String version)
      Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
      java.lang.String lookupNamespaceURI​(java.lang.String prefix)
      Find the URI corresponding to a given in-scope prefix
      java.lang.String lookupPrefix​(java.lang.String namespaceURI)
      Get the (first) prefix assigned to a specified namespace URI, or null if the namespace is not in scope.
      void normalize()
      Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes.
      org.w3c.dom.Node removeChild​(org.w3c.dom.Node oldChild)
      Remove the child node indicated by oldChild from the list of children, and returns it.
      org.w3c.dom.Node replaceChild​(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)
      Replace the child node oldChild with newChild in the list of children, and returns the oldChild node.
      void setNodeValue​(java.lang.String nodeValue)
      Set the node value.
      void setPrefix​(java.lang.String prefix)
      Set the namespace prefix of this node.
      void setTextContent​(java.lang.String textContent)
      Set the text content of a node.
      java.lang.Object setUserData​(java.lang.String key, java.lang.Object data, org.w3c.dom.UserDataHandler handler)
      Set user data.
      static NodeOverNodeInfo wrap​(NodeInfo node)
      Factory method to construct a DOM node that wraps an underlying Saxon NodeInfo
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NodeOverNodeInfo

        public NodeOverNodeInfo()
    • Method Detail

      • getUnderlyingNodeInfo

        public NodeInfo getUnderlyingNodeInfo()
        Get the Saxon NodeInfo object representing this node
        Returns:
        the Saxon NodeInfo object
      • wrap

        public static NodeOverNodeInfo wrap​(NodeInfo node)
        Factory method to construct a DOM node that wraps an underlying Saxon NodeInfo
        Parameters:
        node - the Saxon NodeInfo object
        Returns:
        the DOM wrapper node
      • isSameNode

        public final boolean isSameNode​(org.w3c.dom.Node other)
        Determine whether this is the same node as another node. DOM Level 3 method.
        Specified by:
        isSameNode in interface org.w3c.dom.Node
        Returns:
        true if this Node object and the supplied Node object represent the same node in the tree.
      • equals

        public boolean equals​(java.lang.Object obj)
        The equals() method returns true for two Node objects that represent the same conceptual DOM Node. This is a concession to the Xalan IdentityTransformer, which relies on equals() for DOM Nodes having this behaviour, even though it is not defined in the specification
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to be compared
        Returns:
        if this node and obj represent the same conceptual DOM node. That is, return true if isSameNode((Node)obj) returns true
      • hashCode

        public int hashCode()
        Return a hashCode
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hashCode such that two wrappers over the same underlying node have the same hashCode.
      • getBaseURI

        public java.lang.String getBaseURI()
        Get the base URI for the node. Default implementation for child nodes gets the base URI of the parent node.
        Specified by:
        getBaseURI in interface org.w3c.dom.Node
      • getNodeName

        public java.lang.String getNodeName()
        Get the name of this node, following the DOM rules
        Specified by:
        getNodeName in interface org.w3c.dom.Node
        Returns:
        The name of the node. For an element this is the element name, for an attribute it is the attribute name, as a lexical QName. Other node types return conventional names such as "#text" or "#comment"
      • getLocalName

        public java.lang.String getLocalName()
        Get the local name of this node, following the DOM rules
        Specified by:
        getLocalName in interface org.w3c.dom.Node
        Returns:
        The local name of the node. For an element this is the local part of the element name, for an attribute it is the local part of the attribute name. Other node types return null.
      • hasChildNodes

        public boolean hasChildNodes()
        Determine whether the node has any children.
        Specified by:
        hasChildNodes in interface org.w3c.dom.Node
        Returns:
        true if this node has any attributes, false otherwise.
      • hasAttributes

        public boolean hasAttributes()
        Returns whether this node has any attributes. We treat the declaration of the XML namespace as being present on every element, and since namespace declarations are treated as attributes, every element has at least one attribute. This method therefore returns true.
        Specified by:
        hasAttributes in interface org.w3c.dom.Node
        Returns:
        true if this node has any attributes, false otherwise.
        Since:
        DOM Level 2
      • getNodeType

        public short getNodeType()
        Get the type of this node (node kind, in XPath terminology). Note, the numbers assigned to node kinds in Saxon (see Type) are the same as those assigned in the DOM
        Specified by:
        getNodeType in interface org.w3c.dom.Node
      • getParentNode

        public org.w3c.dom.Node getParentNode()
        Find the parent node of this node.
        Specified by:
        getParentNode in interface org.w3c.dom.Node
        Returns:
        The Node object describing the containing element or root node.
      • getPreviousSibling

        public org.w3c.dom.Node getPreviousSibling()
        Get the previous sibling of the node
        Specified by:
        getPreviousSibling in interface org.w3c.dom.Node
        Returns:
        The previous sibling node. Returns null if the current node is the first child of its parent.
      • getNextSibling

        public org.w3c.dom.Node getNextSibling()
        Get next sibling node
        Specified by:
        getNextSibling in interface org.w3c.dom.Node
        Returns:
        The next sibling node. Returns null if the current node is the last child of its parent.
      • getFirstChild

        public org.w3c.dom.Node getFirstChild()
        Get first child
        Specified by:
        getFirstChild in interface org.w3c.dom.Node
        Returns:
        the first child node of this node, or null if it has no children
      • getLastChild

        public org.w3c.dom.Node getLastChild()
        Get last child
        Specified by:
        getLastChild in interface org.w3c.dom.Node
        Returns:
        last child of this node, or null if it has no children
      • getNodeValue

        public java.lang.String getNodeValue()
        Get the node value (as defined in the DOM). This is not generally the same as the XPath string-value: in particular, the node value of an element node is null.
        Specified by:
        getNodeValue in interface org.w3c.dom.Node
      • setNodeValue

        public void setNodeValue​(java.lang.String nodeValue)
                          throws org.w3c.dom.DOMException
        Set the node value. Always fails
        Specified by:
        setNodeValue in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • getChildNodes

        public org.w3c.dom.NodeList getChildNodes()
        Return a NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes.
        Specified by:
        getChildNodes in interface org.w3c.dom.Node
      • getAttributes

        public org.w3c.dom.NamedNodeMap getAttributes()
        Return a NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise.
        Specified by:
        getAttributes in interface org.w3c.dom.Node
      • getOwnerDocument

        public org.w3c.dom.Document getOwnerDocument()
        Return the Document object associated with this node.
        Specified by:
        getOwnerDocument in interface org.w3c.dom.Node
      • insertBefore

        public org.w3c.dom.Node insertBefore​(org.w3c.dom.Node newChild,
                                             org.w3c.dom.Node refChild)
                                      throws org.w3c.dom.DOMException
        Insert the node newChild before the existing child node refChild. Always fails.
        Specified by:
        insertBefore in interface org.w3c.dom.Node
        Parameters:
        newChild - The node to insert.
        refChild - The reference node, i.e., the node before which the new node must be inserted.
        Returns:
        The node being inserted.
        Throws:
        org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Always raised.
      • replaceChild

        public org.w3c.dom.Node replaceChild​(org.w3c.dom.Node newChild,
                                             org.w3c.dom.Node oldChild)
                                      throws org.w3c.dom.DOMException
        Replace the child node oldChild with newChild in the list of children, and returns the oldChild node. Always fails.
        Specified by:
        replaceChild in interface org.w3c.dom.Node
        Parameters:
        newChild - The new node to put in the child list.
        oldChild - The node being replaced in the list.
        Returns:
        The node replaced.
        Throws:
        org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Always raised.
      • removeChild

        public org.w3c.dom.Node removeChild​(org.w3c.dom.Node oldChild)
                                     throws org.w3c.dom.DOMException
        Remove the child node indicated by oldChild from the list of children, and returns it. Always fails.
        Specified by:
        removeChild in interface org.w3c.dom.Node
        Parameters:
        oldChild - The node being removed.
        Returns:
        The node removed.
        Throws:
        org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Always raised.
      • appendChild

        public org.w3c.dom.Node appendChild​(org.w3c.dom.Node newChild)
                                     throws org.w3c.dom.DOMException
        Adds the node newChild to the end of the list of children of this node. Always fails.
        Specified by:
        appendChild in interface org.w3c.dom.Node
        Parameters:
        newChild - The node to add.
        Returns:
        The node added.
        Throws:
        org.w3c.dom.DOMException -
        NO_MODIFICATION_ALLOWED_ERR: Always raised.
      • cloneNode

        public org.w3c.dom.Node cloneNode​(boolean deep)
        Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. Always fails.
        Specified by:
        cloneNode in interface org.w3c.dom.Node
        Parameters:
        deep - If true , recursively clone the subtree under the specified node; if false , clone only the node itself (and its attributes, if it is an Element ).
        Returns:
        The duplicate node.
      • normalize

        public void normalize()
        Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes.
        Specified by:
        normalize in interface org.w3c.dom.Node
        Since:
        DOM Level 2
      • isSupported

        public boolean isSupported​(java.lang.String feature,
                                   java.lang.String version)
        Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
        Specified by:
        isSupported in interface org.w3c.dom.Node
        Parameters:
        feature - The name of the feature to test. This is the same name which can be passed to the method hasFeature on DOMImplementation .
        version - This is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return true .
        Returns:
        Returns true if the specified feature is supported on this node, false otherwise.
        Since:
        DOM Level 2
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        The namespace URI of this node, or null if it is unspecified.
        This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.
        For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the Document interface, this is always null . Per the Namespaces in XML Specification an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace.
        Specified by:
        getNamespaceURI in interface org.w3c.dom.Node
        Since:
        DOM Level 2
      • getPrefix

        public java.lang.String getPrefix()
        The namespace prefix of this node, or null if it is unspecified.
        For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the Document interface, this is always null.
        Specified by:
        getPrefix in interface org.w3c.dom.Node
        Since:
        DOM Level 2
      • setPrefix

        public void setPrefix​(java.lang.String prefix)
                       throws org.w3c.dom.DOMException
        Set the namespace prefix of this node. Always fails.
        Specified by:
        setPrefix in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • compareDocumentPosition

        public short compareDocumentPosition​(org.w3c.dom.Node other)
                                      throws org.w3c.dom.DOMException
        Compare the position of the (other) node in document order with the reference node (this node). DOM Level 3 method.
        Specified by:
        compareDocumentPosition in interface org.w3c.dom.Node
        Parameters:
        other - the other node.
        Returns:
        Returns how the node is positioned relatively to the reference node.
        Throws:
        org.w3c.dom.DOMException - if an error occurs
      • getTextContent

        public java.lang.String getTextContent()
                                        throws org.w3c.dom.DOMException
        Get the text content of a node. This is a DOM Level 3 method. The definition is the same as the definition of the string value of a node in XPath, except in the case of document nodes.
        Specified by:
        getTextContent in interface org.w3c.dom.Node
        Returns:
        the string value of the node, or null in the case of document nodes.
        Throws:
        org.w3c.dom.DOMException - if a dynamic error occurs
      • setTextContent

        public void setTextContent​(java.lang.String textContent)
                            throws java.lang.UnsupportedOperationException
        Set the text content of a node. Always fails.
        Specified by:
        setTextContent in interface org.w3c.dom.Node
        Parameters:
        textContent - the new text content of the node
        Throws:
        java.lang.UnsupportedOperationException - always
      • lookupPrefix

        public java.lang.String lookupPrefix​(java.lang.String namespaceURI)
        Get the (first) prefix assigned to a specified namespace URI, or null if the namespace is not in scope. DOM Level 3 method.
        Specified by:
        lookupPrefix in interface org.w3c.dom.Node
        Parameters:
        namespaceURI - the namespace whose prefix is required
        Returns:
        the corresponding prefix, if there is one, or null if not.
      • isDefaultNamespace

        public boolean isDefaultNamespace​(java.lang.String namespaceURI)
        Test whether a particular namespace is the default namespace. DOM Level 3 method.
        Specified by:
        isDefaultNamespace in interface org.w3c.dom.Node
        Parameters:
        namespaceURI - the namespace to be tested
        Returns:
        true if this is the default namespace
      • lookupNamespaceURI

        public java.lang.String lookupNamespaceURI​(java.lang.String prefix)
        Find the URI corresponding to a given in-scope prefix
        Specified by:
        lookupNamespaceURI in interface org.w3c.dom.Node
        Parameters:
        prefix - The namespace prefix whose namespace URI is required.
        Returns:
        the corresponding namespace URI, or null if the prefix is not declared.
      • isEqualNode

        public boolean isEqualNode​(org.w3c.dom.Node arg)
        Compare whether two nodes have the same content. This is a DOM Level 3 method.
        Specified by:
        isEqualNode in interface org.w3c.dom.Node
        Parameters:
        arg - The node to be compared. This must wrap a Saxon NodeInfo.
        Returns:
        true if the two nodes are deep-equal.
      • getFeature

        public java.lang.Object getFeature​(java.lang.String feature,
                                           java.lang.String version)
        Get a feature of this node. DOM Level 3 method, always returns null.
        Specified by:
        getFeature in interface org.w3c.dom.Node
        Parameters:
        feature - the required feature
        version - the version of the required feature
        Returns:
        the value of the feature. Always null in this implementation
      • setUserData

        public java.lang.Object setUserData​(java.lang.String key,
                                            java.lang.Object data,
                                            org.w3c.dom.UserDataHandler handler)
        Set user data. Always throws UnsupportedOperationException in this implementation
        Specified by:
        setUserData in interface org.w3c.dom.Node
        Parameters:
        key - name of the user data
        data - value of the user data
        handler - handler for the user data
        Returns:
        This implementation always throws an exception
      • getUserData

        public java.lang.Object getUserData​(java.lang.String key)
        Get user data associated with this node. DOM Level 3 method, always returns null in this implementation
        Specified by:
        getUserData in interface org.w3c.dom.Node
        Parameters:
        key - identifies the user data required
        Returns:
        always null in this implementation
      • disallowUpdate

        protected static void disallowUpdate()
                                      throws org.w3c.dom.DOMException
        Internal method used to indicate that update operations are not allowed
        Throws:
        org.w3c.dom.DOMException - always, to indicate that update is not supported in this DOM implementation