com.icl.saxon.expr

Class SingletonNodeSet

Implemented Interfaces:
NodeList
Known Direct Subclasses:
FragmentValue, TextFragmentValue

public class SingletonNodeSet
extends NodeSetValue
implements NodeList

A node-set value containing zero or one nodes

Field Summary

protected boolean
generalUseAllowed
protected NodeInfo
node

Fields inherited from class com.icl.saxon.expr.Value

ANY, BOOLEAN, NODESET, NUMBER, OBJECT, STRING

Fields inherited from class com.icl.saxon.expr.Expression

staticContext

Constructor Summary

SingletonNodeSet()
Create an empty node-set
SingletonNodeSet(NodeInfo node)
Create a node-set containing one node

Method Summary

void
allowGeneralUse()
Allow general use as a node-set.
boolean
asBoolean()
Evaluate as a boolean.
String
asString()
Convert to string value
NodeEnumeration
enumerate()
Return an enumeration of this nodeset value.
boolean
equals(Value other)
Test whether a nodeset "equals" another Value
Value
evaluate(Context context)
Evaluate the Node Set.
NodeSetValue
evaluateAsNodeSet(Context context)
Evaluate an expression as a NodeSet.
int
getCount()
Count the nodes in the node-set.
NodeInfo
getFirst()
Get the first node in the nodeset (in document order)
int
getLength()
return the number of nodes in the list (DOM method)
boolean
isGeneralUseAllowed()
Determine if general use as a node-set is allowed
boolean
isSorted()
Test whether the value is known to be sorted
Node
item(int index)
Return the n'th item in the list (DOM method)
boolean
notEquals(Value other)
Test whether a nodeset "not-equals" another Value
void
setSorted(boolean isSorted)
Set a flag to indicate whether the nodes are sorted.
Expression
simplify()
Simplify the expression
NodeSetValue
sort()
Sort the nodes into document order.

Methods inherited from class com.icl.saxon.expr.NodeSetValue

asBoolean, asNumber, asString, compare, conversionPreference, convertToJava, display, enumerate, enumerate, equals, evaluate, evaluateAsNodeSet, getCount, getDataType, getFirst, isSorted, notEquals, setSorted, sort

Methods inherited from class com.icl.saxon.expr.Value

asBoolean, asNumber, asString, compare, conversionPreference, convertToJava, equals, evaluate, getDependencies, inverse, notEquals, numericCompare, reduce, simplify, stringToNumber

Methods inherited from class com.icl.saxon.expr.Expression

containsReferences, display, enumerate, evaluate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getDataType, getDependencies, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, reduce, setStaticContext, simplify, usesCurrent

Field Details

generalUseAllowed

protected boolean generalUseAllowed

node

protected NodeInfo node

Constructor Details

SingletonNodeSet

public SingletonNodeSet()
Create an empty node-set

SingletonNodeSet

public SingletonNodeSet(NodeInfo node)
Create a node-set containing one node

Method Details

allowGeneralUse

public void allowGeneralUse()
Allow general use as a node-set. This is required to lift the 1.0 restrictions on use of result tree fragments

asBoolean

public boolean asBoolean()
Evaluate as a boolean.
Overrides:
asBoolean in interface NodeSetValue
Returns:
true if the node set is not empty

asString

public String asString()
Convert to string value
Overrides:
asString in interface NodeSetValue
Returns:
the value of the first node in the node-set if there is one, otherwise an empty string

enumerate

public NodeEnumeration enumerate()
            throws XPathException
Return an enumeration of this nodeset value.
Overrides:
enumerate in interface NodeSetValue

equals

public boolean equals(Value other)
            throws XPathException
Test whether a nodeset "equals" another Value
Overrides:
equals in interface NodeSetValue

evaluate

public Value evaluate(Context context)
Evaluate the Node Set. This guarantees to return the result in sorted order.
Overrides:
evaluate in interface NodeSetValue
Parameters:
context - The context for evaluation (not used)

evaluateAsNodeSet

public NodeSetValue evaluateAsNodeSet(Context context)
Evaluate an expression as a NodeSet.
Overrides:
evaluateAsNodeSet in interface NodeSetValue
Parameters:
context - The context in which the expression is to be evaluated
Returns:
the value of the expression, evaluated in the current context

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.
Overrides:
getCount in interface NodeSetValue

getFirst

public NodeInfo getFirst()
Get the first node in the nodeset (in document order)
Overrides:
getFirst in interface NodeSetValue
Returns:
the first node

getLength

public int getLength()
return the number of nodes in the list (DOM method)

isGeneralUseAllowed

public boolean isGeneralUseAllowed()
Determine if general use as a node-set is allowed

isSorted

public boolean isSorted()
Test whether the value is known to be sorted
Overrides:
isSorted in interface NodeSetValue
Returns:
true if the value is known to be sorted in document order, false if it is not known whether it is sorted.

item

public Node item(int index)
Return the n'th item in the list (DOM method)

notEquals

public boolean notEquals(Value other)
            throws XPathException
Test whether a nodeset "not-equals" another Value
Overrides:
notEquals in interface NodeSetValue

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.
Overrides:
setSorted in interface NodeSetValue
Parameters:
isSorted - true if the caller wishes to assert that the nodes are in document order and do not need to be further sorted

simplify

public Expression simplify()
Simplify the expression
Overrides:
simplify in interface Value

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)
Overrides:
sort in interface NodeSetValue
Returns:
the same NodeSetValue, after sorting. (Historic)