net.sf.saxon.expr
Class SingletonComparison

java.lang.Object
  extended bynet.sf.saxon.expr.ComputedExpression
      extended bynet.sf.saxon.expr.BinaryExpression
          extended bynet.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, isAssociative, 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, getHostLanguage, 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