net.sf.saxon.value
Class SingletonNode
- GroundedValue, Serializable, SequenceIterable, ValueRepresentation
public class SingletonNode
A value that is a sequence containing zero or one nodes
asItem , asItem , asIterator , asValue , checkPermittedContents , convertJavaObjectToXPath , convertToJava , convertToJava , effectiveBooleanValue , equals , fromItem , getCanonicalLexicalRepresentation , getCardinality , getItemType , getIterator , getLength , getSchemaComparable , getStringValue , getStringValueCS , itemAt , iterate , iterate , makeQNameValue , process , reduce , stringToNumber , toString |
SingletonNode
public SingletonNode(NodeInfo node)
Create a node-set containing zero or one nodes
node
- The node to be contained in the node-set, or null if the node-set
is to be empty
asItem
public Item asItem()
Return the value in the form of an Item
- asItem in interface Value
- the value in the form of an Item
effectiveBooleanValue
public boolean effectiveBooleanValue()
Get the effective boolean value
- effectiveBooleanValue in interface Value
getCardinality
public int getCardinality()
Determine the static cardinality
- getCardinality in interface Value
getItemType
public ItemType getItemType(TypeHierarchy th)
Determine the data type of the items in the expression. This method determines the most
precise type that it can, because it is called when testing that the node conforms to a required
type.
- getItemType in interface Value
th
- the type hierarchy cache
- the most precise possible type of the node.
getNode
public NodeInfo getNode()
Get the node that forms the node-set. Return null if there is none.
getStringValue
public String getStringValue()
Convert the value to a string, using the serialization rules.
For atomic values this is the same as a cast; for sequence values
it gives a space-separated list. For QNames and NOTATIONS, or lists
containing them, it fails.
- getStringValue in interface ValueRepresentation
- getStringValue in interface Value
itemAt
public Item itemAt(int n)
Get the n'th item in the sequence (starting from 0). This is defined for all
SequenceValues, but its real benefits come for a SequenceValue stored extensionally
(or for a MemoClosure, once all the values have been read)
- itemAt in interface GroundedValue
- itemAt in interface Value
process
public void process(XPathContext context)
throws XPathException
Process the instruction, without returning any tail calls
- process in interface Value
context
- The dynamic context, giving access to the current node,
the current variables, etc.
subsequence
public GroundedValue subsequence(int start,
int length)
Get a subsequence of the value
- subsequence in interface GroundedValue
start
- the index of the first item to be included in the result, counting from zero.
A negative value is taken as zero. If the value is beyond the end of the sequence, an empty
sequence is returnedlength
- the number of items to be included in the result. Specify Integer.MAX_VALUE to
get the subsequence up to the end of the base sequence. If the value is negative, an empty sequence
is returned. If the value goes off the end of the sequence, the result returns items up to the end
of the sequence
- the required subsequence. If min is