com.icl.saxon.tinytree
Class TinyAttributeImpl

java.lang.Object
  extended by com.icl.saxon.om.AbstractNode
      extended by com.icl.saxon.tinytree.TinyNodeImpl
          extended by com.icl.saxon.tinytree.TinyAttributeImpl
All Implemented Interfaces:
NodeInfo, DOMLocator, Source, SourceLocator, Attr, Node

final class TinyAttributeImpl
extends TinyNodeImpl
implements Attr

A node in the XML parse tree representing an attribute. Note that this is generated only "on demand", when the attribute is selected by a select pattern.

Author:
Michael H. Kay

Field Summary
 
Fields inherited from class com.icl.saxon.tinytree.TinyNodeImpl
document, nodeNr, parent
 
Fields inherited from class com.icl.saxon.om.AbstractNode
NODE_LETTER
 
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
 
Fields inherited from interface com.icl.saxon.om.NodeInfo
ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT
 
Constructor Summary
TinyAttributeImpl(TinyDocumentImpl doc, int nodeNr)
           
 
Method Summary
 void copy(Outputter out)
          Copy this node to a given outputter
 String generateId()
          Generate id.
 String getDisplayName()
          Get the display name of this node.
 int getFingerprint()
          Get the fingerprint of the node, used for matching names
 int getLineNumber()
          Get the line number of the node within its source document entity
 String getLocalName()
          Get the local name of this node.
 int getNameCode()
          Get the name code of the node, used for finding names in the name pool
 short getNodeType()
          Return the type of node.
 NodeInfo getParent()
          Get the parent node
 String getPrefix()
          Get the prefix part of the name of this node.
 TypeInfo getSchemaTypeInfo()
          The type information associated with this attribute.
protected  long getSequenceNumber()
          Get the node sequence number (in document order).
 String getStringValue()
          Return the character value of the node.
 String getURI()
          Get the URI part of the name of this node.
 boolean isId()
          Returns whether this attribute is known to be of type ID (i.e.
 
Methods inherited from class com.icl.saxon.tinytree.TinyNodeImpl
compareOrder, getAttributeValue, getAttributeValue, getBaseURI, getDocumentRoot, getEnumeration, getOriginatingNode, getSystemId, hasAttributes, hasChildNodes, isSameNodeInfo, outputNamespaceNodes, setLineNumber, setParentNode, setSystemId
 
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, copyStringValue, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getChildNodes, getColumnNumber, getData, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getFirstChild, getImplementation, getLastChild, getLength, getName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getOwnerElement, getParentNode, getPreviousSibling, getPublicId, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Attr
getName, getOwnerElement, getSpecified, getValue, setValue
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

Constructor Detail

TinyAttributeImpl

public TinyAttributeImpl(TinyDocumentImpl doc,
                         int nodeNr)
Method Detail

getParent

public NodeInfo getParent()
Get the parent node

Specified by:
getParent in interface NodeInfo
Overrides:
getParent in class TinyNodeImpl
Returns:
The Node object describing the containing element or root node.

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 TinyNodeImpl

getNodeType

public final short getNodeType()
Return the type of node.

Specified by:
getNodeType in interface NodeInfo
Specified by:
getNodeType in interface Node
Returns:
Node.ATTRIBUTE

getStringValue

public String getStringValue()
Return the character value of the node.

Specified by:
getStringValue in interface NodeInfo
Returns:
the attribute value

getFingerprint

public int getFingerprint()
Get the fingerprint of the node, used for matching names

Specified by:
getFingerprint in interface NodeInfo
Overrides:
getFingerprint in class TinyNodeImpl

getNameCode

public int getNameCode()
Get the name code of the node, used for finding names in the name pool

Specified by:
getNameCode in interface NodeInfo
Overrides:
getNameCode in class TinyNodeImpl
See Also:
allocate, getFingerprint

getPrefix

public 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
Specified by:
getPrefix in interface Node
Overrides:
getPrefix in class TinyNodeImpl
Returns:
the prefix part of the name. For an unnamed node, return null.

getDisplayName

public String getDisplayName()
Get the display name of this node. For elements and attributes this is [prefix:]localname. For unnamed nodes, it is an empty string.

Specified by:
getDisplayName in interface NodeInfo
Overrides:
getDisplayName in class TinyNodeImpl
Returns:
The display name of this node. For a node with no name, return an empty string.

getLocalName

public String getLocalName()
Get the local name of this node.

Specified by:
getLocalName in interface NodeInfo
Specified by:
getLocalName in interface Node
Overrides:
getLocalName in class TinyNodeImpl
Returns:
The local name of this node. For a node with no name, return an empty string.

getURI

public final String getURI()
Get the URI part of the name of this node.

Specified by:
getURI in interface NodeInfo
Overrides:
getURI in class TinyNodeImpl
Returns:
The URI of the namespace of this node. For the default namespace, return an empty string

generateId

public String generateId()
Generate id. Returns key of owning element with the attribute name as a suffix

Specified by:
generateId in interface NodeInfo
Overrides:
generateId in class TinyNodeImpl
Returns:
a string.

copy

public void copy(Outputter out)
          throws TransformerException
Copy this node to a given outputter

Specified by:
copy in interface NodeInfo
Throws:
TransformerException

getLineNumber

public int getLineNumber()
Get the line number of the node within its source document entity

Specified by:
getLineNumber in interface NodeInfo
Specified by:
getLineNumber in interface SourceLocator
Overrides:
getLineNumber in class TinyNodeImpl
Returns:
the line number of the node in its original source document; or -1 if not available

getSchemaTypeInfo

public TypeInfo getSchemaTypeInfo()
The type information associated with this attribute. While the type information contained in this attribute is guarantee to be correct after loading the document or invoking Document.normalizeDocument(), schemaTypeInfo may not be reliable if the node was moved.

Specified by:
getSchemaTypeInfo in interface Attr
Overrides:
getSchemaTypeInfo in class AbstractNode
Since:
DOM Level 3

isId

public boolean isId()
Returns whether this attribute is known to be of type ID (i.e. to contain an identifier for its owner element) or not. When it is and its value is unique, the ownerElement of this attribute can be retrieved using the method Document.getElementById . The implementation could use several ways to determine if an attribute node is known to contain an identifier:
If validation occurred while invoking Document.normalizeDocument(), all user-determined ID attributes are reset and all attribute nodes ID information are then reevaluated in accordance to the schema used. As a consequence, if the Attr.schemaTypeInfo attribute contains an ID type, isId will always return true.

Specified by:
isId in interface Attr
Overrides:
isId in class AbstractNode
Since:
DOM Level 3