net.sf.saxon.value

Class SingletonItem

public class SingletonItem extends Value implements GroundedValue

A value that is a sequence containing zero or one items. Used only for items that are not atomic values (that is, nodes, and function items)
Field Summary
protected Itemitem
Constructor Summary
SingletonItem(Item item)
Create a node-set containing zero or one nodes
Method Summary
ItemasItem()
Return the value in the form of an Item
booleaneffectiveBooleanValue()
Get the effective boolean value
intgetCardinality()
Determine the static cardinality
ItemgetItem()
Get the node that forms the node-set.
ItemTypegetItemType(TypeHierarchy th)
Determine the data type of the items in the expression.
intgetLength()
Get the length of the sequence
StringgetStringValue()
Convert the value to a string, using the serialization rules.
ItemitemAt(int n)
Get the n'th item in the sequence (starting from 0).
SequenceIteratoriterate()
Return an enumeration of this nodeset value.
voidprocess(XPathContext context)
Process the instruction, without returning any tail calls
GroundedValuesubsequence(int start, int length)
Get a subsequence of the value

Field Detail

item

protected Item item

Constructor Detail

SingletonItem

public SingletonItem(Item item)
Create a node-set containing zero or one nodes

Parameters: item The node or function-item to be contained in the node-set, or null if the sequence is to be empty

Method Detail

asItem

public Item asItem()
Return the value in the form of an Item

Returns: the value in the form of an Item

effectiveBooleanValue

public boolean effectiveBooleanValue()
Get the effective boolean value

getCardinality

public int getCardinality()
Determine the static cardinality

getItem

public Item getItem()
Get the node that forms the node-set. Return null if there is none.

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.

Parameters: th the type hierarchy cache

Returns: the most precise possible type of the node.

getLength

public int getLength()
Get the length of the sequence

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.

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)

iterate

public SequenceIterator iterate()
Return an enumeration of this nodeset value.

process

public void process(XPathContext context)
Process the instruction, without returning any tail calls

Parameters: 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

Parameters: 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 returned length 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

Returns: the required subsequence. If min is