## com.icl.saxon.expr
Class SingletonExpression

    java.lang.Object
      |
      +--com.icl.saxon.expr.Expression
            |
            +--com.icl.saxon.expr.NodeSetExpression
                  |
                  +--com.icl.saxon.expr.SingletonExpression

Direct Known Subclasses:
  ContextNodeExpression, ParentNodeExpression, RootExpression

public abstract class SingletonExpression
extends NodeSetExpression

A node set expression that will always return zero or one nodes

Field Summary

Fields inherited from class com.icl.saxon.expr.Expression
`staticContext`

Constructor Summary
`SingletonExpression()`

Method Summary
`NodeEnumeration` `enumerate(Context context, boolean sort)` Evaluate the expression in a given context to return a Node enumeration
`boolean` `evaluateAsBoolean(Context context)` Evaluate as a boolean.
`NodeSetValue` `evaluateAsNodeSet(Context context)` Evaluate an expression as a NodeSet.
`java.lang.String` `evaluateAsString(Context context)` Evaluate as a string.
`abstract NodeInfo` `getNode(Context context)` Get the single node to which this expression refers
`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.
`NodeInfo` `selectFirst(Context context)` Return the first node selected by this Expression when evaluated in the current context

Methods inherited from class com.icl.saxon.expr.NodeSetExpression
`evaluate, getDataType, outputStringValue`

Methods inherited from class com.icl.saxon.expr.Expression
`containsReferences, display, evaluateAsNumber, getDependencies, getStaticContext, indent, make, reduce, setStaticContext, simplify, usesCurrent`

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

Constructor Detail

### SingletonExpression

    public SingletonExpression()

Method Detail

### 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`

### getNode

    public abstract NodeInfo getNode(Context context)
                              throws XPathException

  Get the single node to which this expression refers

    `XPathException`

### selectFirst

    public NodeInfo selectFirst(Context context)
                         throws XPathException

  Return the first node selected by this Expression when evaluated in the current context

  Overrides:
    `selectFirst` in class `NodeSetExpression`
  Parameters:
    `context` - The context for the evaluation
  Returns:
    the NodeInfo of the first node in document order, or null if the node-set is empty.
    `XPathException`

### enumerate

    public NodeEnumeration enumerate(Context context,
                                     boolean sort)
                              throws XPathException

  Evaluate the expression in a given context to return a Node enumeration

  Specified by:
    `enumerate` in class `NodeSetExpression`
  Parameters:
    `context` - the evaluation context
    `sort` - Indicates result must be in document order
    `XPathException`

### evaluateAsNodeSet

    public NodeSetValue evaluateAsNodeSet(Context context)
                                   throws XPathException

  Evaluate an expression as a NodeSet.

  Overrides:
    `evaluateAsNodeSet` in class `NodeSetExpression`
  Parameters:
    `context` - The context in which the expression is to be evaluated
  Returns:
    the value of the expression, evaluated in the current context
    `XPathException`

### evaluateAsString

    public java.lang.String evaluateAsString(Context context)
                                      throws XPathException

  Evaluate as a string. Returns the string value of the node if it exists

  Overrides:
    `evaluateAsString` in class `NodeSetExpression`
  Parameters:
    `context` - The context in which the expression is to be evaluated
  Returns:
    true if there are any nodes selected by the NodeSetExpression
    `XPathException`

### evaluateAsBoolean

    public boolean evaluateAsBoolean(Context context)
                              throws XPathException

  Evaluate as a boolean. Returns true if there are any nodes selected by the NodeSetExpression

  Overrides:
    `evaluateAsBoolean` in class `NodeSetExpression`
  Parameters:
    `context` - The context in which the expression is to be evaluated
  Returns:
    true if there are any nodes selected by the NodeSetExpression
    `XPathException`