## 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
`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(TypeHierarchy th)` Determine the data type of the expression
`void` `setComparator(java.util.Comparator comp, XPathContext context)`

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

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

`adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, dynamicError, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, suppressValidation, 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,
                              XPathContext context)

### computeCardinality

    public int computeCardinality()

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

  Overrides:
    `computeCardinality` in class `BinaryExpression`

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Determine the data type of the expression

  Parameters:
    `th` -
  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`