com.icl.saxon.expr
Class NodeSetExtent
- org.w3c.dom.NodeList, Sortable
public final class NodeSetExtent
implements Sortable, org.w3c.dom.NodeList
A node-set value implemented extensionally. This class also implements the
DOM NodeList interface - though this will only work if the nodes themselves
implement the DOM Node interface (which is true of the two Saxon tree models,
but not necessarily of all possible implementations).
void | append(NodeInfo node) - Append a node to the node-set.
|
boolean | asBoolean() - Evaluate as a boolean.
|
String | asString() - Convert to string value
|
int | compare(int a, int b) - Compare two nodes in document sequence
(needed to implement the Sortable interface)
|
NodeEnumeration | enumerate() - Return an enumeration of this nodeset value.
|
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 | isSorted() - Test whether the value is known to be sorted
|
Node | item(int index) - Return the n'th item in the list (DOM method)
|
NodeInfo | selectFirst(Context context) - Return the first node in the nodeset (in document order)
|
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.
|
void | swap(int a, int b) - Swap two nodes (needed to implement the Sortable interface)
|
asBoolean , asNumber , asString , compare , conversionPreference , convertToJava , display , enumerate , enumerate , equals , evaluate , evaluateAsNodeSet , getCount , getDataType , getFirst , isSorted , notEquals , setSorted , sort |
asBoolean , asNumber , asString , compare , conversionPreference , convertToJava , equals , evaluate , getDependencies , inverse , notEquals , numericCompare , reduce , simplify , stringToNumber |
containsReferences , display , enumerate , evaluate , evaluateAsBoolean , evaluateAsNodeSet , evaluateAsNumber , evaluateAsString , getDataType , getDependencies , getStaticContext , indent , isContextDocumentNodeSet , make , outputStringValue , reduce , setStaticContext , simplify , usesCurrent |
NodeSetExtent
public NodeSetExtent(Vector nodes,
NodeOrderComparer comparer)
Construct a node-set given the set of nodes as a Vector
nodes
- a Vector whose elements must be NodeInfo objectscomparer
- Comparer used for sorting into document order
NodeSetExtent
public NodeSetExtent(NodeEnumeration enum,
NodeOrderComparer comparer)
throws XPathException
Construct a node-set containing all the nodes in a NodeEnumeration.
enum
- The supplied node enumeration. This must be positioned at the start,
so that hasMoreElements() returns true if there are any nodes in the node-set,
and nextElement() returns the first node.comparer
- Comparer used for sorting into document order
NodeSetExtent
public NodeSetExtent(NodeInfo nodes,
NodeOrderComparer comparer)
Construct a node-set given the set of nodes as an array
nodes
- An array whose elements must be NodeInfo objectscomparer
- Comparer used for sorting into document order
NodeSetExtent
public NodeSetExtent(NodeOrderComparer comparer)
Construct an empty node set
append
public void append(NodeInfo node)
Append a node to the node-set. This is used only when building indexes.
The node-set must be sorted; the new node must follow the others in document
order. The new node is not added if it is the same as the last node currently
in the node-set.
asBoolean
public boolean asBoolean()
throws XPathException
Evaluate as a boolean.
- asBoolean in interface NodeSetValue
- true if the node set is not empty
asString
public String asString()
Convert to string value
- asString in interface NodeSetValue
- the value of the first node in the node-set if there
is one, otherwise an empty string
compare
public int compare(int a,
int b)
Compare two nodes in document sequence
(needed to implement the Sortable interface)
- compare in interface Sortable
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.
- getCount in interface NodeSetValue
getFirst
public NodeInfo getFirst()
Get the first node in the nodeset (in document order)
- getFirst in interface NodeSetValue
- the first node, or null if the nodeset is empty
getLength
public int getLength()
return the number of nodes in the list (DOM method)
isSorted
public boolean isSorted()
Test whether the value is known to be sorted
- isSorted in interface NodeSetValue
- 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)
selectFirst
public NodeInfo selectFirst(Context context)
Return the first node in the nodeset (in document order)
context
- The context for the evaluation: not used
- 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.
- setSorted in interface NodeSetValue
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
- 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)
- sort in interface NodeSetValue
- the same NodeSetValue, after sorting. (The reason for returning this is that
it makes life easier for the XSL compiler).
swap
public void swap(int a,
int b)
Swap two nodes (needed to implement the Sortable interface)
- swap in interface Sortable