net.sf.saxon.expr
Class BooleanExpression

java.lang.Object
  extended bynet.sf.saxon.expr.ComputedExpression
      extended bynet.sf.saxon.expr.BinaryExpression
          extended bynet.sf.saxon.expr.BooleanExpression
All Implemented Interfaces:
Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class BooleanExpression
extends BinaryExpression

Boolean expression: two truth values combined using AND or OR.

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
BooleanExpression(Expression p1, int operator, Expression p2)
           
 
Method Summary
 int computeCardinality()
          Determine the static cardinality.
 boolean effectiveBooleanValue(XPathContext c)
          Evaluate as a boolean.
 Item evaluateItem(XPathContext context)
          Evaluate the expression
 ItemType getItemType()
          Determine the data type of the expression
static void listAndComponents(Expression exp, java.util.List list)
          Construct a list containing the "anded" subexpressions of an expression: if the expression is (A and B and C), this returns (A, B, C).
 
Methods inherited from class net.sf.saxon.expr.BinaryExpression
computeSpecialProperties, display, displayOperator, 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, typeError, typeError
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BooleanExpression

public BooleanExpression(Expression p1,
                         int operator,
                         Expression p2)
Method Detail

computeCardinality

public int computeCardinality()
Determine the static cardinality. Returns [1..1]

Overrides:
computeCardinality in class BinaryExpression

evaluateItem

public Item evaluateItem(XPathContext context)
                  throws XPathException
Evaluate the expression

Specified by:
evaluateItem in interface Expression
Overrides:
evaluateItem in class ComputedExpression
Parameters:
context - The context in which the expression is to be evaluated
Returns:
the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
Throws:
XPathException - if any dynamic error occurs evaluating the expression

effectiveBooleanValue

public boolean effectiveBooleanValue(XPathContext c)
                              throws XPathException
Evaluate as a boolean.

Specified by:
effectiveBooleanValue in interface Expression
Overrides:
effectiveBooleanValue in class ComputedExpression
Parameters:
c - The context in which the expression is to be evaluated
Returns:
the effective boolean value
Throws:
XPathException - if any dynamic error occurs evaluating the expression

getItemType

public ItemType getItemType()
Determine the data type of the expression

Returns:
Type.BOOLEAN

listAndComponents

public static void listAndComponents(Expression exp,
                                     java.util.List list)
Construct a list containing the "anded" subexpressions of an expression: if the expression is (A and B and C), this returns (A, B, C). TODO: could do more complete analysis to convert the expression to conjunctive normal form

Parameters:
exp - the expression to be decomposed
list - the list to which the subexpressions are to be added.