net.sf.saxon.tinytree
Class TinyTextImpl

java.lang.Object
  extended by net.sf.saxon.tinytree.TinyNodeImpl
      extended by net.sf.saxon.tinytree.TinyTextImpl
All Implemented Interfaces:
Source, SourceLocator, PullEvent, FingerprintedNode, Item, NodeInfo, ValueRepresentation

public final class TinyTextImpl
extends TinyNodeImpl

A node in the XML parse tree representing character content

Author:
Michael H. Kay

Field Summary
 
Fields inherited from class net.sf.saxon.tinytree.TinyNodeImpl
NODE_LETTER, nodeNr, parent, tree
 
Fields inherited from interface net.sf.saxon.om.NodeInfo
ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
 
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
 
Constructor Summary
TinyTextImpl(TinyTree tree, int nodeNr)
          Create a text node
 
Method Summary
 Value atomize()
          Get the typed value.
 void copy(Receiver out, int whichNamespaces, boolean copyAnnotations, int locationId)
          Copy this node to a given outputter
 int getNodeKind()
          Return the type of node.
 String getStringValue()
          Return the character value of the node.
static CharSequence getStringValue(TinyTree tree, int nodeNr)
          Static method to get the string value of a text node without first constructing the node object
 CharSequence getStringValueCS()
          Get the value of the item as a CharSequence.
 SequenceIterator getTypedValue()
          Get the typed value of this node.
 
Methods inherited from class net.sf.saxon.tinytree.TinyNodeImpl
compareOrder, equals, generateId, getAttributeValue, getBaseURI, getColumnNumber, getConfiguration, getDeclaredNamespaces, getDisplayName, getDocumentNumber, getDocumentRoot, getFingerprint, getLineNumber, getLocalPart, getNameCode, getNamePool, getNodeNumber, getParent, getPrefix, getPublicId, getRoot, getSequenceNumber, getSystemId, getTree, getTypeAnnotation, getURI, hasChildNodes, hashCode, isAncestorOrSelf, isId, isIdref, isNilled, isSameNodeInfo, iterateAxis, iterateAxis, setParentNode, setSystemId
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TinyTextImpl

public TinyTextImpl(TinyTree tree,
                    int nodeNr)
Create a text node

Parameters:
tree - the tree to contain the node
nodeNr - the internal node number
Method Detail

getStringValue

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

Returns:
the string value of the node
See Also:
Item.getStringValueCS()

getStringValueCS

public CharSequence getStringValueCS()
Get the value of the item as a CharSequence. This is in some cases more efficient than the version of the method that returns a String.

Specified by:
getStringValueCS in interface Item
Specified by:
getStringValueCS in interface ValueRepresentation
Overrides:
getStringValueCS in class TinyNodeImpl
Returns:
the string value of the item
See Also:
Item.getStringValue()

getStringValue

public static CharSequence getStringValue(TinyTree tree,
                                          int nodeNr)
Static method to get the string value of a text node without first constructing the node object

Parameters:
tree - the tree
nodeNr - the node number of the text node
Returns:
the string value of the text node

getNodeKind

public final int getNodeKind()
Return the type of node.

Returns:
Type.TEXT
See Also:
Type

copy

public void copy(Receiver out,
                 int whichNamespaces,
                 boolean copyAnnotations,
                 int locationId)
          throws XPathException
Copy this node to a given outputter

Parameters:
out - the Receiver to which the node should be copied. It is the caller's responsibility to ensure that this Receiver is open before the method is called (or that it is self-opening), and that it is closed after use.
whichNamespaces - in the case of an element, controls which namespace nodes should be copied. Values are NodeInfo.NO_NAMESPACES, NodeInfo.LOCAL_NAMESPACES, NodeInfo.ALL_NAMESPACES
copyAnnotations - indicates whether the type annotations of element and attribute nodes should be copied
locationId - If non-zero, identifies the location of the instruction that requested this copy. If zero, indicates that the location information for the original node is to be copied; in this case the Receiver must be a LocationCopier
Throws:
XPathException

getTypedValue

public SequenceIterator getTypedValue()
                               throws XPathException
Get the typed value of this node. If there is no type annotation, we return the string value, as an instance of xs:untypedAtomic

Returns:
an iterator over the items in the typed value of the node or atomic value. The items returned by this iterator will always be atomic values.
Throws:
XPathException - where no typed value is available, for example in the case of an element with complex content

atomize

public Value atomize()
              throws XPathException
Get the typed value. The result of this method will always be consistent with the method Item.getTypedValue(). However, this method is often more convenient and may be more efficient, especially in the common case where the value is expected to be a singleton.

Returns:
the typed value. It will be a Value representing a sequence whose items are atomic values.
Throws:
XPathException
Since:
8.5


Copyright (c) Saxonica Limited. All rights reserved.