com.icl.saxon.expr

Class NodeSetIntent

public class NodeSetIntent extends NodeSetValue

A node-set value implemented intensionally. It is a wrapper round an Expression which can be evaluated independently of context, that is it has been reduced so there are no remaining context-dependencies.
Constructor Summary
NodeSetIntent(NodeSetExpression exp, Controller controller)
Construct a node-set containing all the nodes in a NodeEnumeration
Method Summary
booleanasBoolean()
Evaluate as a boolean.
StringasString()
Convert to string value
NodeEnumerationenumerate()
Return an enumeration of this nodeset value.
intgetCount()
Count the nodes in the node-set.
NodeInfogetFirst()
Get the first node in the nodeset (in document order)
NodeSetExpressiongetNodeSetExpression()
Get the encapsulated NodeSetExpression
booleanisContextDocumentNodeSet()
Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node.
booleanisSorted()
Test whether the value is known to be sorted
NodeInfoselectFirst(Context context)
Return the first node in the nodeset (in document order)
voidsetSorted(boolean isSorted)
Set a flag to indicate whether the nodes are sorted.
NodeSetValuesort()
Sort the nodes into document order.

Constructor Detail

NodeSetIntent

public NodeSetIntent(NodeSetExpression exp, Controller controller)
Construct a node-set containing all the nodes in a NodeEnumeration

Method Detail

asBoolean

public boolean asBoolean()
Evaluate as a boolean.

Returns: true if the node set is not empty

asString

public String asString()
Convert to string value

Returns: the value of the first node in the node-set if there is one, otherwise an empty string

enumerate

public NodeEnumeration enumerate()
Return an enumeration of this nodeset value.

getCount

public int getCount()
Count the nodes in the node-set. Note this will sort the node set if necessary, to make sure there are no duplicates.

getFirst

public NodeInfo getFirst()
Get the first node in the nodeset (in document order)

Returns: the first node

getNodeSetExpression

public NodeSetExpression getNodeSetExpression()
Get the encapsulated NodeSetExpression

isContextDocumentNodeSet

public boolean isContextDocumentNodeSet()
Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node. Used for optimization.

isSorted

public boolean isSorted()
Test whether the value is known to be sorted

Returns: true if the value is known to be sorted in document order, false if it is not known whether it is sorted.

selectFirst

public NodeInfo selectFirst(Context context)
Return the first node in the nodeset (in document order)

Parameters: context The context for the evaluation: not used

Returns: the NodeInfo of the first node in document order, or null if the node-set is empty.

setSorted

public void setSorted(boolean isSorted)
Set a flag to indicate whether the nodes are sorted. Used when the creator of the node-set knows that they are already in document order.

Parameters: isSorted true if the caller wishes to assert that the nodes will be delivered in document order and do not need to be further sorted

sort

public NodeSetValue sort()
Sort the nodes into document order. This does nothing if the nodes are already known to be sorted; to force a sort, call setSorted(false)

Returns: the same NodeSetValue, after sorting.