## 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
`protected boolean` `generalUseAllowed`
`protected NodeInfo` `node`

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
`SingletonNodeSet()` Create an empty node-set
`SingletonNodeSet(NodeInfo node)` Create a node-set containing one node

Method Summary
`void` `allowGeneralUse()` Allow general use as a node-set.
`boolean` `asBoolean()` Evaluate as a boolean.
`java.lang.String` `asString()` Convert to string value
`NodeEnumeration` `enumerate()` Return an enumeration of this nodeset value.
`boolean` `equals(Value other)` Test whether a nodeset "equals" another Value
`Value` `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 allowed
`boolean` `isSorted()` Test whether the value is known to be sorted
`org.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 Value
`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.

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`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

  Overrides:
    `simplify` in class `Value`
  Returns:
    the simplified expression

### evaluate

    public Value evaluate(Context context)

  Evaluate the Node Set. This guarantees to return the result in sorted order.

  Overrides:
    `evaluate` in class `NodeSetValue`
  Parameters:
    `context` - The context for evaluation (not used)

### evaluateAsNodeSet

    public NodeSetValue evaluateAsNodeSet(Context context)

  Evaluate an expression as a NodeSet.

  Overrides:
    `evaluateAsNodeSet` in class `NodeSetValue`
  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 class `NodeSetValue`
  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 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.

### asString

    public java.lang.String asString()

  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

### asBoolean

    public boolean asBoolean()

  Evaluate as a boolean.

  Specified by:
    `asBoolean` in class `NodeSetValue`
  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 class `NodeSetValue`

### 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 class `NodeSetValue`
  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 class `NodeSetValue`
  Returns:
    the first node

### equals

    public boolean equals(Value other)
                   throws XPathException

  Test whether a nodeset "equals" another Value

  Overrides:
    `equals` in class `NodeSetValue`
  Returns:
    a boolean giving the value of the expression, evaluated in the current context
    `XPathException`

### notEquals

    public boolean notEquals(Value other)
                      throws XPathException

  Test whether a nodeset "not-equals" another Value

  Overrides:
    `notEquals` in class `NodeSetValue`
  Returns:
    a boolean giving the value of the expression, evaluated in the current context
    `XPathException`

### enumerate

    public NodeEnumeration enumerate()
                              throws XPathException

  Return an enumeration of this nodeset value.

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

### getLength

    public int getLength()

  return the number of nodes in the list (DOM method)

  Specified by:
    `getLength` in interface `org.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 interface `org.w3c.dom.NodeList`