Package com.icl.saxon.expr
Class SingletonNodeSet
- java.lang.Object
-
- com.icl.saxon.expr.Expression
-
- com.icl.saxon.expr.Value
-
- com.icl.saxon.expr.NodeSetValue
-
- com.icl.saxon.expr.SingletonNodeSet
-
- All Implemented Interfaces:
org.w3c.dom.NodeList
- Direct Known Subclasses:
FragmentValue,TextFragmentValue
public class SingletonNodeSet extends NodeSetValue implements org.w3c.dom.NodeList
A node-set value containing zero or one nodes
-
-
Field Summary
Fields Modifier and Type Field Description protected booleangeneralUseAllowedprotected NodeInfonode-
Fields inherited from class com.icl.saxon.expr.Expression
staticContext
-
-
Constructor Summary
Constructors Constructor Description SingletonNodeSet()Create an empty node-setSingletonNodeSet(NodeInfo node)Create a node-set containing one node
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidallowGeneralUse()Allow general use as a node-set.booleanasBoolean()Evaluate as a boolean.java.lang.StringasString()Convert to string valueNodeEnumerationenumerate()Return an enumeration of this nodeset value.booleanequals(Value other)Test whether a nodeset "equals" another ValueValueevaluate(Context context)Evaluate the Node Set.NodeSetValueevaluateAsNodeSet(Context context)Evaluate an expression as a NodeSet.intgetCount()Count the nodes in the node-set.NodeInfogetFirst()Get the first node in the nodeset (in document order)intgetLength()return the number of nodes in the list (DOM method)booleanisGeneralUseAllowed()Determine if general use as a node-set is allowedbooleanisSorted()Test whether the value is known to be sortedorg.w3c.dom.Nodeitem(int index)Return the n'th item in the list (DOM method)booleannotEquals(Value other)Test whether a nodeset "not-equals" another ValuevoidsetSorted(boolean isSorted)Set a flag to indicate whether the nodes are sorted.Expressionsimplify()Simplify the expressionNodeSetValuesort()Sort the nodes into document order.-
Methods inherited from class com.icl.saxon.expr.NodeSetValue
asNumber, compare, conversionPreference, convertToJava, display, enumerate, getDataType
-
Methods inherited from class com.icl.saxon.expr.Value
getDependencies, inverse, numericCompare, reduce, stringToNumber
-
Methods inherited from class com.icl.saxon.expr.Expression
containsReferences, evaluateAsBoolean, evaluateAsNumber, evaluateAsString, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, setStaticContext, usesCurrent
-
-
-
-
Field Detail
-
node
protected NodeInfo node
-
generalUseAllowed
protected boolean generalUseAllowed
-
-
Constructor Detail
-
SingletonNodeSet
public SingletonNodeSet()
Create an empty node-set
-
SingletonNodeSet
public SingletonNodeSet(NodeInfo node)
Create a node-set containing one node
-
-
Method Detail
-
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
-
isGeneralUseAllowed
public boolean isGeneralUseAllowed()
Determine if general use as a node-set is allowed
-
simplify
public Expression simplify()
Simplify the expression
-
evaluate
public Value evaluate(Context context)
Evaluate the Node Set. This guarantees to return the result in sorted order.- Overrides:
evaluatein classNodeSetValue- Parameters:
context- The context for evaluation (not used)- Returns:
- the value, unchanged
-
evaluateAsNodeSet
public NodeSetValue evaluateAsNodeSet(Context context)
Evaluate an expression as a NodeSet.- Overrides:
evaluateAsNodeSetin classNodeSetValue- Parameters:
context- The context in which the expression is to be evaluated- Returns:
- the value of the expression, evaluated in the current context
-
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.- Specified by:
setSortedin classNodeSetValue- Parameters:
isSorted- true if the caller wishes to assert that the nodes are in document order and do not need to be further sorted
-
isSorted
public boolean isSorted()
Test whether the value is known to be sorted- Specified by:
isSortedin classNodeSetValue- Returns:
- true if the value is known to be sorted in document order, false if it is not known whether it is sorted.
-
asString
public java.lang.String asString()
Convert to string value- Specified by:
asStringin classNodeSetValue- Returns:
- the value of the first node in the node-set if there is one, otherwise an empty string
-
asBoolean
public boolean asBoolean()
Evaluate as a boolean.- Specified by:
asBooleanin classNodeSetValue- Returns:
- true if the node set is not empty
-
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.- Specified by:
getCountin classNodeSetValue
-
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)- Specified by:
sortin classNodeSetValue- Returns:
- the same NodeSetValue, after sorting. (Historic)
-
getFirst
public NodeInfo getFirst()
Get the first node in the nodeset (in document order)- Specified by:
getFirstin classNodeSetValue- Returns:
- the first node
-
equals
public boolean equals(Value other) throws XPathException
Test whether a nodeset "equals" another Value- Overrides:
equalsin classNodeSetValue- Returns:
- a boolean giving the value of the expression, evaluated in the current context
- Throws:
XPathException
-
notEquals
public boolean notEquals(Value other) throws XPathException
Test whether a nodeset "not-equals" another Value- Overrides:
notEqualsin classNodeSetValue- Returns:
- a boolean giving the value of the expression, evaluated in the current context
- Throws:
XPathException
-
enumerate
public NodeEnumeration enumerate() throws XPathException
Return an enumeration of this nodeset value.- Specified by:
enumeratein classNodeSetValue- Throws:
XPathException
-
getLength
public int getLength()
return the number of nodes in the list (DOM method)- Specified by:
getLengthin interfaceorg.w3c.dom.NodeList
-
item
public org.w3c.dom.Node item(int index)
Return the n'th item in the list (DOM method)- Specified by:
itemin interfaceorg.w3c.dom.NodeList
-
-