## net.sf.saxon.expr
Class SingletonComparison

    java.lang.Object
      net.sf.saxon.expr.ComputedExpression
          net.sf.saxon.expr.BinaryExpression
              net.sf.saxon.expr.SingletonComparison

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class SingletonComparison
extends BinaryExpression

Class to handle comparisons of singletons. Unlike ValueComparison, this class converts untyped atomic values to the type of the other argument, and returns false (rather than ()) if either operand is ().

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.expr.BinaryExpression
`operand0, operand1, operator`

Fields inherited from class net.sf.saxon.expr.ComputedExpression
`locationId, staticProperties`

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`SingletonComparison(Expression p1, int operator, Expression p2)`

Method Summary
`Expression` `analyze(StaticContext env, ItemType contextItemType)` Type-check the expression
`int` `computeCardinality()` Determine the static cardinality.
`protected java.lang.String` `displayOperator()`
`boolean` `effectiveBooleanValue(XPathContext context)` Evaluate the expression in a boolean context
`Item` `evaluateItem(XPathContext context)` Evaluate the expression in a given context
`ItemType` `getItemType()` Determine the data type of the expression
`void` `setComparator(java.util.Comparator comp)`

Methods inherited from class net.sf.saxon.expr.BinaryExpression
`computeSpecialProperties, display, equals, getOperands, getOperator, hashCode, isCommutative, isInverse, iterateSubExpressions, promote, simplify`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, dynamicError, dynamicError, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError, typeError`

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

Constructor Detail

### SingletonComparison

    public SingletonComparison(Expression p1,
                               int operator,
                               Expression p2)

Method Detail

### setComparator

    public void setComparator(java.util.Comparator comp)

### computeCardinality

    public int computeCardinality()

  Determine the static cardinality. Returns [1..1]

  Overrides:
    `computeCardinality` in class `BinaryExpression`

### analyze

    public Expression analyze(StaticContext env,
                              ItemType contextItemType)
                       throws XPathException

  Type-check the expression

  Specified by:
    `analyze` in interface `Expression`
  Overrides:
    `analyze` in class `BinaryExpression`
  Returns:
    the checked expression
  Throws:
    `XPathException`

### getItemType

    public ItemType getItemType()

  Determine the data type of the expression

  Returns:
    Type.BOOLEAN

### evaluateItem

    public Item evaluateItem(XPathContext context)
                      throws XPathException

  Evaluate the expression in a given context

  Specified by:
    `evaluateItem` in interface `Expression`
  Overrides:
    `evaluateItem` in class `ComputedExpression`
  Parameters:
    `context` - the given context for evaluation
  Returns:
    a BooleanValue representing the result of the numeric comparison of the two operands
  Throws:
    `XPathException` - if any dynamic error occurs evaluating the expression

### effectiveBooleanValue

    public boolean effectiveBooleanValue(XPathContext context)
                                  throws XPathException

  Evaluate the expression in a boolean context

  Specified by:
    `effectiveBooleanValue` in interface `Expression`
  Overrides:
    `effectiveBooleanValue` in class `ComputedExpression`
  Parameters:
    `context` - the given context for evaluation
  Returns:
    a boolean representing the result of the numeric comparison of the two operands
  Throws:
    `XPathException` - if any dynamic error occurs evaluating the expression

### displayOperator

    protected java.lang.String displayOperator()

  Overrides:
    `displayOperator` in class `BinaryExpression`