## com.icl.saxon.expr
Class NodeSetIntent

    java.lang.Object
      |
      +--com.icl.saxon.expr.Expression
            |
            +--com.icl.saxon.expr.Value
                  |
                  +--com.icl.saxon.expr.NodeSetValue
                        |
                        +--com.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.
    `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
    `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
    `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`
    `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.
    `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
    `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.
    `XPathException`

### enumerate

    public NodeEnumeration enumerate()
                              throws XPathException

  Return an enumeration of this nodeset value.

  Specified by:
    `enumerate` in class `NodeSetValue`
    `XPathException`