net.sf.saxon.tinytree

Class WhitespaceTextImpl

public final class WhitespaceTextImpl extends TinyNodeImpl

A node in the XML parse tree representing a text node with compressed whitespace content

Author: Michael H. Kay

Constructor Summary
WhitespaceTextImpl(TinyTree tree, int nodeNr)
Create a compressed whitespace text node
Method Summary
static voidappendStringValue(TinyTree tree, int nodeNr, FastStringBuffer buffer)
Static method to get the string value of a text node and append it to a supplied buffer without first constructing the node object
Valueatomize()
Get the typed value.
voidcopy(Receiver out, int whichNamespaces, boolean copyAnnotations, int locationId)
Copy this node to a given outputter
static longgetLongValue(TinyTree tree, int nodeNr)
Static method to get the "long" value representing the content of a whitespace text node
intgetNodeKind()
Return the type of node.
StringgetStringValue()
Return the character value of the node.
CharSequencegetStringValueCS()
Get the value of the item as a CharSequence.
static CharSequencegetStringValueCS(TinyTree tree, int nodeNr)
Static method to get the string value of a text node without first constructing the node object
SequenceIteratorgetTypedValue()
Get the typed value of the item.

Constructor Detail

WhitespaceTextImpl

public WhitespaceTextImpl(TinyTree tree, int nodeNr)
Create a compressed whitespace text node

Parameters: tree the tree to contain the node nodeNr the internal node number

Method Detail

appendStringValue

public static void appendStringValue(TinyTree tree, int nodeNr, FastStringBuffer buffer)
Static method to get the string value of a text node and append it to a supplied buffer without first constructing the node object

Parameters: tree the tree nodeNr the node number of the text node buffer a buffer to which the string value will be appended

atomize

public Value atomize()
Get the typed value. The result of this method will always be consistent with the method 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. This will either be a single AtomicValue or a Value whose items are atomic values.

Since: 8.5

copy

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

getLongValue

public static long getLongValue(TinyTree tree, int nodeNr)
Static method to get the "long" value representing the content of a whitespace text node

Parameters: tree the TinyTree nodeNr the internal node number

Returns: a value representing the compressed whitespace content

See Also: CompressedWhitespace

getNodeKind

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

Returns: Type.TEXT

getStringValue

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

Returns: the string value of the node

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. For a WhitespaceTextImpl node, it avoids the cost of decompressing the whitespace

getStringValueCS

public static CharSequence getStringValueCS(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

getTypedValue

public SequenceIterator getTypedValue()
Get the typed value of the item.

For a node, this is the typed value as defined in the XPath 2.0 data model. Since a node may have a list-valued data type, the typed value is in general a sequence, and it is returned in the form of a SequenceIterator.

If the node has not been validated against a schema, the typed value will be the same as the string value, either as an instance of xs:string or as an instance of xs:untypedAtomic, depending on the node kind.

For an atomic value, this method returns an iterator over a singleton sequence containing the atomic value itself.

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: net.sf.saxon.trans.XPathException where no typed value is available, for example in the case of an element with complex content

Since: 8.4