Class NamespaceImpl

  • All Implemented Interfaces:
    NodeInfo, javax.xml.transform.dom.DOMLocator, javax.xml.transform.Source, javax.xml.transform.SourceLocator, org.w3c.dom.Node

    final class NamespaceImpl
    extends NodeImpl
    A node in the XML parse tree representing a Namespace. Note that this is generated only "on demand", when the namespace axis is expanded.

    Version:
    3 November 1999
    Author:
    Michael H. Kay
    • Constructor Detail

      • NamespaceImpl

        public NamespaceImpl​(ElementImpl element,
                             int nsCode,
                             int index)
        Construct a Namespace node
        Parameters:
        element - The element owning the namespace node
        nsCode - The namespace code
        index - Integer identifying this namespace node among the nodes for its parent
    • Method Detail

      • getNamespaceCode

        public int getNamespaceCode()
        Get the namespace code for this prefix/uri pair. Not the same as the name code!
      • isSameNodeInfo

        public boolean isSameNodeInfo​(NodeInfo other)
        Determine whether this is the same node as another node
        Specified by:
        isSameNodeInfo in interface NodeInfo
        Overrides:
        isSameNodeInfo in class NodeImpl
        Returns:
        true if this Node object and the supplied Node object represent the same node in the tree.
      • getLocalName

        public java.lang.String getLocalName()
        Get the prefix of the namespace that this node relates to
        Specified by:
        getLocalName in interface org.w3c.dom.Node
        Specified by:
        getLocalName in interface NodeInfo
        Overrides:
        getLocalName in class NodeImpl
        Returns:
        The local name of this node. For a node with no name, return an empty string.
      • setNamespaceCode

        public void setNamespaceCode​(int nsCode)
        Change the uri of the namespace that this node relates to (used to implement xsl:namespace-alias)
      • getNodeType

        public final short getNodeType()
        Return the type of node.
        Returns:
        NodeInfo.NAMESPACE
      • getStringValue

        public java.lang.String getStringValue()
        Return the string value of the node.
        Returns:
        the namespace uri
      • getNodeName

        public java.lang.String getNodeName()
        Get the name of this node, following the DOM rules (which aren't actually defined for Namespace nodes...)
        Specified by:
        getNodeName in interface org.w3c.dom.Node
        Overrides:
        getNodeName in class AbstractNode
        Returns:
        the namespace prefix
      • getNextSibling

        public org.w3c.dom.Node getNextSibling()
        Get next sibling - not defined for namespace nodes
        Specified by:
        getNextSibling in interface org.w3c.dom.Node
        Overrides:
        getNextSibling in class NodeImpl
        Returns:
        The next sibling node of the required type. Returns null if the current node is the last child of its parent.
      • getPreviousSibling

        public org.w3c.dom.Node getPreviousSibling()
        Get previous sibling - not defined for namespace nodes
        Specified by:
        getPreviousSibling in interface org.w3c.dom.Node
        Overrides:
        getPreviousSibling in class NodeImpl
        Returns:
        The previous sibling node. Returns null if the current node is the first child of its parent.
      • getPreviousInDocument

        public NodeImpl getPreviousInDocument()
        Get the previous node in document order (skipping namespace nodes)
        Overrides:
        getPreviousInDocument in class NodeImpl
        Returns:
        the previous node in the document, or null if there is no such node
      • getNextInDocument

        public NodeImpl getNextInDocument​(NodeImpl anchor)
        Get the next node in document order (skipping namespace nodes)
        Overrides:
        getNextInDocument in class NodeImpl
        Parameters:
        anchor - : the scan stops when it reaches a node that is not a descendant of the specified anchor node
        Returns:
        the next node in the document, or null if there is no such node
      • generateId

        public java.lang.String generateId()
        Get sequential key. Returns key of owning element with the namespace prefix as a suffix
        Specified by:
        generateId in interface NodeInfo
        Overrides:
        generateId in class NodeImpl
        Returns:
        a string.
      • copy

        public void copy​(Outputter out)
                  throws javax.xml.transform.TransformerException
        Copy this node to a given outputter
        Throws:
        javax.xml.transform.TransformerException
      • getSequenceNumber

        protected long getSequenceNumber()
        Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and roots) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position.
        Overrides:
        getSequenceNumber in class NodeImpl