com.icl.saxon.expr
Class NodeSetIntent

java.lang.Object
  extended bycom.icl.saxon.expr.Expression
      extended bycom.icl.saxon.expr.Value
          extended bycom.icl.saxon.expr.NodeSetValue
              extended bycom.icl.saxon.expr.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.


Field Summary
 
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
NodeSetIntent(NodeSetExpression exp, Controller controller)
          Construct a node-set containing all the nodes in a NodeEnumeration
 
Method Summary
 boolean asBoolean()
          Evaluate as a boolean.
 java.lang.String asString()
          Convert to string value
 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)
 NodeSetExpression getNodeSetExpression()
          Get the encapsulated NodeSetExpression
 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.
 boolean isSorted()
          Test whether the value is known to be sorted
 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.
 NodeSetValue sort()
          Sort the nodes into document order.
 
Methods inherited from class com.icl.saxon.expr.NodeSetValue
asNumber, compare, conversionPreference, convertToJava, display, enumerate, equals, evaluate, evaluateAsNodeSet, getDataType, notEquals
 
Methods inherited from class com.icl.saxon.expr.Value
getDependencies, inverse, numericCompare, reduce, simplify, stringToNumber
 
Methods inherited from class com.icl.saxon.expr.Expression
containsReferences, evaluateAsBoolean, evaluateAsNumber, evaluateAsString, getStaticContext, indent, make, outputStringValue, setStaticContext, usesCurrent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NodeSetIntent

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

Method Detail

getNodeSetExpression

public NodeSetExpression getNodeSetExpression()
Get the encapsulated NodeSetExpression


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 class NodeSetValue
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

isSorted

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

Specified by:
isSorted in class NodeSetValue
Returns:
true if the value is known to be sorted in document order, false if it is not known whether it is sorted.
Throws:
XPathException

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.

Overrides:
isContextDocumentNodeSet in class Expression

asString

public java.lang.String asString()
                          throws XPathException
Convert to string value

Specified by:
asString in class NodeSetValue
Returns:
the value of the first node in the node-set if there is one, otherwise an empty string
Throws:
XPathException

asBoolean

public boolean asBoolean()
                  throws XPathException
Evaluate as a boolean.

Specified by:
asBoolean in class NodeSetValue
Returns:
true if the node set is not empty
Throws:
XPathException

getCount

public int getCount()
             throws XPathException
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 class NodeSetValue
Throws:
XPathException

sort

public NodeSetValue sort()
                  throws XPathException
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 class NodeSetValue
Returns:
the same NodeSetValue, after sorting.
Throws:
XPathException

getFirst

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

Specified by:
getFirst in class NodeSetValue
Returns:
the first node
Throws:
XPathException

selectFirst

public NodeInfo selectFirst(Context context)
                     throws XPathException
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.
Throws:
XPathException

enumerate

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

Specified by:
enumerate in class NodeSetValue
Throws:
XPathException