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 boolean
generalUseAllowed
protected NodeInfo
node
-
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 void
allowGeneralUse()
Allow general use as a node-set.boolean
asBoolean()
Evaluate as a boolean.java.lang.String
asString()
Convert to string valueNodeEnumeration
enumerate()
Return an enumeration of this nodeset value.boolean
equals(Value other)
Test whether a nodeset "equals" another ValueValue
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 allowedboolean
isSorted()
Test whether the value is known to be sortedorg.w3c.dom.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 Valuevoid
setSorted(boolean isSorted)
Set a flag to indicate whether the nodes are sorted.Expression
simplify()
Simplify the expressionNodeSetValue
sort()
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:
evaluate
in 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:
evaluateAsNodeSet
in 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:
setSorted
in 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:
isSorted
in 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:
asString
in 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:
asBoolean
in 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:
getCount
in 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:
sort
in classNodeSetValue
- Returns:
- the same NodeSetValue, after sorting. (Historic)
-
getFirst
public NodeInfo getFirst()
Get the first node in the nodeset (in document order)- Specified by:
getFirst
in classNodeSetValue
- Returns:
- the first node
-
equals
public boolean equals(Value other) throws XPathException
Test whether a nodeset "equals" another Value- Overrides:
equals
in 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:
notEquals
in 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:
enumerate
in classNodeSetValue
- Throws:
XPathException
-
getLength
public int getLength()
return the number of nodes in the list (DOM method)- Specified by:
getLength
in 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:
item
in interfaceorg.w3c.dom.NodeList
-
-