com.icl.saxon.tinytree
Class TinyNamespaceImpl

java.lang.Object
  |
  +--com.icl.saxon.tinytree.TinyNodeImpl
        |
        +--com.icl.saxon.tinytree.TinyNamespaceImpl
All Implemented Interfaces:
NamespaceInfo, org.w3c.dom.Node, NodeInfo

public final class TinyNamespaceImpl
extends com.icl.saxon.tinytree.TinyNodeImpl
implements NamespaceInfo

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


Field Summary
protected  TinyDocumentImpl document
           
protected  int nodeNr
           
protected  com.icl.saxon.tinytree.TinyNodeImpl parent
           
 
Fields inherited from interface com.icl.saxon.om.NodeInfo
ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NODE_TYPE_NAMES, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT
 
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
 
Constructor Summary
TinyNamespaceImpl(TinyDocumentImpl doc, int nodeNr)
           
 
Method Summary
 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.
 void copy(Outputter out)
          Copy this node to a given outputter
 void copyStringValue(Outputter out)
          Copy the string-value of this node to a given outputter
 void defaultAction(Context c)
          Perform default action for this kind of node (built-in template rule)
protected  void disallowUpdate()
          Internal method used to indicate that update operations are not allowed
 NodeEnumeration enumerateChildren()
          Get an enumeration of the children of this node
 NodeInfo[] getAllChildNodes()
          Get all child nodes of the element (child elements and character nodes)
 ElementInfo getAncestor(NodeTest test)
          Get the nearest ancestor element with a given name
 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 getAttributeValue(int fingerprint)
          Get the value of a given attribute of this node
 java.lang.String getAttributeValue(java.lang.String name)
          Find the value of a given attribute of this node.
 java.lang.String getAttributeValue(java.lang.String uri, java.lang.String localName)
          Find the value of a given attribute of this node.
 org.w3c.dom.NodeList getChildNodes()
          Return a NodeList that contains all children of this node.
 java.lang.String getDisplayName()
          Get the display name of this node.
 org.w3c.dom.Element getDocumentElement()
          Get the outermost element.
 DocumentInfo getDocumentRoot()
          Get the root (document) node
 int getFingerprint()
          Get the fingerprint
 org.w3c.dom.Node getFirstChild()
          Get first child
 int getIndex()
          Get the index of this node, i.e.
 org.w3c.dom.Node getLastChild()
          Get last child
 int getLineNumber()
          Get the line number of the node within its source document entity
 java.lang.String getLocalName()
          Get the local name of this node.
 int getNameCode()
          Get the nameCode, for name matching
 int getNamespaceCode()
          Get the namespace code (a numeric representation of the prefix and URI)
 java.lang.String getNamespacePrefix()
          Get the prefix of the namespace that this node relates to
 java.lang.String getNamespaceURI()
          Get the uri of the namespace that this node relates to
 NodeInfo getNextInDocument()
          Get the next node in document order.
 NodeInfo getNextInDocument(NodeInfo anchor)
          Get the next node in document order
 org.w3c.dom.Node getNextSibling()
          Get next sibling - not defined for namespace nodes
 java.lang.String getNodeName()
          Get the name of this node, following the DOM rules (which aren't actually defined for Namespace nodes...)
 short getNodeType()
          Return the type of node.
 java.lang.String getNodeValue()
          Get the node value as defined in the DOM.
 int getNumberOfChildren()
          Get the number of children.
 org.w3c.dom.Document getOwnerDocument()
          Return the Document object associated with this node.
 org.w3c.dom.Node getParentNode()
          Get the parent element of this namespace node
 java.lang.String getPath()
          Generate a path to this node
 java.lang.String getPrefix()
          Get the prefix part of the name of this node.
 NodeInfo getPreviousInDocument()
          Get the previous node in document order.
 org.w3c.dom.Node getPreviousSibling()
          Get previous sibling - not defined for namespace nodes
 java.lang.String getPublicId()
          Get the public identifier of the document entity containing this node.
 long getSequenceNumber()
          Get the node sequence number (in document order).
 java.lang.String getSequentialKey()
          Get sequential key.
 java.lang.String getSystemId()
          Get the base URI for the node.
 java.lang.String getURI()
          Get the URI part of the name of this node.
 short getURICode()
          Get URI code.
 java.lang.String getValue()
          Return the string value of the node.
 boolean hasAttributes()
          Returns whether this node (if it is an element) has any attributes.
 boolean hasChildNodes()
          Determine whether the node has any children.
 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 isDocumentElement()
          Determine whether this node is the outermost element.
 boolean isSameNode(NodeInfo 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.
 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 setLineNumber(int line)
          Set the line number of the node within its source document entity
 void setNodeValue(java.lang.String nodeValue)
          Set the node value.
protected  void setParentNode(int nodeNr)
          Set the parent element for this namespace node
protected  void setParentNode(com.icl.saxon.tinytree.TinyNodeImpl parent)
          Set the parent of this node
 void setPrefix(java.lang.String prefix)
          Set the namespace prefix of this node.
 java.lang.String toString()
          Diagnostic output
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.icl.saxon.om.NodeInfo
copyStringValue, enumerateChildren, getAllChildNodes, getAttributeValue, getAttributeValue, getAttributeValue, getDocumentElement, getDocumentRoot, getIndex, getLineNumber, getNextInDocument, getNumberOfChildren, getSystemId, getURICode, isDocumentElement
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getNodeValue, getOwnerDocument, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

Field Detail

document

protected TinyDocumentImpl document

nodeNr

protected int nodeNr

parent

protected com.icl.saxon.tinytree.TinyNodeImpl parent
Constructor Detail

TinyNamespaceImpl

public TinyNamespaceImpl(TinyDocumentImpl doc,
                         int nodeNr)
Method Detail

getNamespaceCode

public int getNamespaceCode()
Get the namespace code (a numeric representation of the prefix and URI)
Specified by:
getNamespaceCode in interface NamespaceInfo

getFingerprint

public int getFingerprint()
Get the fingerprint
Specified by:
getFingerprint in interface NodeInfo
Overrides:
getFingerprint in class com.icl.saxon.tinytree.TinyNodeImpl

setParentNode

protected void setParentNode(int nodeNr)
Set the parent element for this namespace node

getNameCode

public int getNameCode()
Get the nameCode, for name matching
Specified by:
getNameCode in interface NodeInfo
Overrides:
getNameCode in class com.icl.saxon.tinytree.TinyNodeImpl

getPrefix

public java.lang.String getPrefix()
Get the prefix part of the name of this node. This is the name before the ":" if any.
Specified by:
getPrefix in interface NodeInfo
Overrides:
getPrefix in class com.icl.saxon.tinytree.TinyNodeImpl
Returns:
the prefix part of the name. Always null.

getDisplayName

public java.lang.String getDisplayName()
Get the display name of this node. For namespaces this is the namespace prefix.
Specified by:
getDisplayName in interface NodeInfo
Overrides:
getDisplayName in class com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The display name of this node. For a node with no name, return an empty string.

getLocalName

public java.lang.String getLocalName()
Get the local name of this node. For namespaces this is the namespace prefix.
Specified by:
getLocalName in interface NodeInfo
Overrides:
getLocalName in class com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The local name of this node.

getURI

public java.lang.String getURI()
Get the URI part of the name of this node.
Specified by:
getURI in interface NodeInfo
Overrides:
getURI in class com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The URI of the namespace of this node. Always null.

getParentNode

public org.w3c.dom.Node getParentNode()
Get the parent element of this namespace node
Specified by:
getParentNode in interface org.w3c.dom.Node
Overrides:
getParentNode in class com.icl.saxon.tinytree.TinyNodeImpl
Following copied from class: com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The Node object describing the containing element or root node.

isSameNode

public final boolean isSameNode(NodeInfo other)
Determine whether this is the same node as another node
Specified by:
isSameNode in interface NodeInfo
Overrides:
isSameNode in class com.icl.saxon.tinytree.TinyNodeImpl
Returns:
true if this Node object and the supplied Node object represent the same node in the tree.

getNamespacePrefix

public final java.lang.String getNamespacePrefix()
Get the prefix of the namespace that this node relates to
Specified by:
getNamespacePrefix in interface NamespaceInfo

getNamespaceURI

public final java.lang.String getNamespaceURI()
Get the uri of the namespace that this node relates to
Specified by:
getNamespaceURI in interface NamespaceInfo
Overrides:
getNamespaceURI in class com.icl.saxon.tinytree.TinyNodeImpl

getNodeType

public final short getNodeType()
Return the type of node.
Specified by:
getNodeType in interface NodeInfo
Returns:
NodeInfo.NAMESPACE

getValue

public final java.lang.String getValue()
Return the string value of the node.
Specified by:
getValue in interface NodeInfo
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 NodeInfo
Overrides:
getNodeName in class com.icl.saxon.tinytree.TinyNodeImpl
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 com.icl.saxon.tinytree.TinyNodeImpl
Following copied from class: com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The next sibling node. 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 com.icl.saxon.tinytree.TinyNodeImpl
Following copied from class: com.icl.saxon.tinytree.TinyNodeImpl
Returns:
The previous sibling node. Returns null if the current node is the first child of its parent.

getPreviousInDocument

public NodeInfo getPreviousInDocument()
Get the previous node in document order. Not supported for namespace nodes.
Specified by:
getPreviousInDocument in interface NodeInfo
Overrides:
getPreviousInDocument in class com.icl.saxon.tinytree.TinyNodeImpl
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
the previous node in the document, or null if there is no such node

getNextInDocument

public NodeInfo getNextInDocument()
Get the next node in document order. Not supported for namespace nodes.

getSequentialKey

public java.lang.String getSequentialKey()
Get sequential key. Returns key of owning element with the namespace prefix as a suffix
Specified by:
getSequentialKey in interface NodeInfo
Overrides:
getSequentialKey in class com.icl.saxon.tinytree.TinyNodeImpl
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
a string.

copy

public void copy(Outputter out)
          throws org.xml.sax.SAXException
Copy this node to a given outputter
Specified by:
copy in interface NodeInfo

defaultAction

public void defaultAction(Context c)
Perform default action for this kind of node (built-in template rule)
Specified by:
defaultAction in interface NodeInfo

getSequenceNumber

public 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.
Specified by:
getSequenceNumber in interface NodeInfo
Overrides:
getSequenceNumber in class com.icl.saxon.tinytree.TinyNodeImpl

getPath

public java.lang.String getPath()
Generate a path to this node
Specified by:
getPath in interface NodeInfo

toString

public java.lang.String toString()
Diagnostic output
Overrides:
toString in class com.icl.saxon.tinytree.TinyNodeImpl

setParentNode

protected void setParentNode(com.icl.saxon.tinytree.TinyNodeImpl parent)
Set the parent of this node

getSystemId

public java.lang.String getSystemId()
Get the base URI for the node.
Specified by:
getSystemId in interface NodeInfo
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
the System Identifier of the entity in the source document containing the node, or null if not known

setLineNumber

public void setLineNumber(int line)
Set the line number of the node within its source document entity

getLineNumber

public int getLineNumber()
Get the line number of the node within its source document entity
Specified by:
getLineNumber in interface NodeInfo
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
the line number of the node in its original source document; or -1 if not available

getURICode

public short getURICode()
Get URI code. This is a number that uniquely identifies the namespace URI of the node, within its NamePool
Specified by:
getURICode in interface NodeInfo

getPublicId

public java.lang.String getPublicId()
Get the public identifier of the document entity containing this node. This is not currently maintained: return null

getIndex

public final int getIndex()
Get the index of this node, i.e. its position among its siblings
Specified by:
getIndex in interface NodeInfo
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
the number of preceding sibling nodes at the same level

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

getNumberOfChildren

public int getNumberOfChildren()
Get the number of children.
Specified by:
getNumberOfChildren in interface NodeInfo

getAllChildNodes

public NodeInfo[] getAllChildNodes()
Description copied from interface: NodeInfo
Get all child nodes of the element (child elements and character nodes)
Specified by:
getAllChildNodes in interface NodeInfo
Following copied from interface: com.icl.saxon.om.NodeInfo
Returns:
an array containing a NodeInfo for each child node

enumerateChildren

public NodeEnumeration enumerateChildren()
Get an enumeration of the children of this node
Specified by:
enumerateChildren in interface NodeInfo

hasAttributes

public boolean hasAttributes()
Returns whether this node (if it is an element) has any attributes.
Specified by:
hasAttributes in interface org.w3c.dom.Node
Returns:
true if this node has any attributes, false otherwise.
Since:
DOM Level 2

getAttributeValue

public java.lang.String getAttributeValue(java.lang.String uri,
                                          java.lang.String localName)
Find the value of a given attribute of this node.
This method is defined on all nodes to meet XSL requirements, but for nodes other than elements it will always return null.
Specified by:
getAttributeValue in interface NodeInfo
Parameters:
uri - the namespace uri of an attribute
localName - the local name of an attribute
Returns:
the value of the attribute, if it exists, otherwise null

getAttributeValue

public java.lang.String getAttributeValue(java.lang.String name)
Find the value of a given attribute of this node.
This method is defined on all nodes to meet XSL requirements, but for nodes other than elements it will always return null.
Specified by:
getAttributeValue in interface NodeInfo
Parameters:
name - the name of an attribute. This must be an unqualified attribute name, i.e. one with no namespace prefix.
Returns:
the value of the attribute, if it exists, otherwise null

getAttributeValue

public java.lang.String getAttributeValue(int fingerprint)
Get the value of a given attribute of this node
Specified by:
getAttributeValue in interface NodeInfo
Parameters:
fingerprint - The fingerprint of the attribute name
Returns:
the attribute value if it exists or null if not

getAncestor

public final ElementInfo getAncestor(NodeTest test)
Get the nearest ancestor element with a given name
Parameters:
name - The name of the required ancestor.
Returns:
The NodeInfo for the nearest ancestor with the given tag; null if there is no such ancestor

isDocumentElement

public boolean isDocumentElement()
Determine whether this node is the outermost element.
Specified by:
isDocumentElement in interface NodeInfo
Returns:
True if this element is the document (outermost) element. (Note this only works for a well-formed document).

getDocumentElement

public org.w3c.dom.Element getDocumentElement()
Get the outermost element.
Specified by:
getDocumentElement in interface NodeInfo
Returns:
the ElementInfo for the outermost element of the document. If the document is not well-formed, this returns the last element child of the root if there is one, otherwise null.

getDocumentRoot

public DocumentInfo getDocumentRoot()
Get the root (document) node
Specified by:
getDocumentRoot in interface NodeInfo
Returns:
the DocumentInfo representing the containing document

getNextInDocument

public NodeInfo getNextInDocument(NodeInfo anchor)
Get the next node in document order
Specified by:
getNextInDocument in interface NodeInfo
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

copyStringValue

public void copyStringValue(Outputter out)
                     throws org.xml.sax.SAXException
Copy the string-value of this node to a given outputter
Specified by:
copyStringValue in interface NodeInfo

getNodeValue

public java.lang.String getNodeValue()
Get the node value as defined in the DOM. This is not the same as the XPath string-value.
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. DOM method: always fails
Specified by:
setNodeValue in interface org.w3c.dom.Node

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. (DOM method)
Specified by:
getAttributes in interface org.w3c.dom.Node

getOwnerDocument

public org.w3c.dom.Document getOwnerDocument()
Return the Document object associated with this node. (DOM mehod)
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. DOM method: 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. DOM method: 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. DOM method: 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.

hasChildNodes

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

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. The duplicate node has no parent. Not implemented: always returns null. (Because trees are read-only, there would be no way of using the resulting node.)
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

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

disallowUpdate

protected void disallowUpdate()
                       throws org.w3c.dom.DOMException
Internal method used to indicate that update operations are not allowed