net.sf.saxon.expr

Class NumericPromoter

public abstract class NumericPromoter extends UnaryExpression

A NumericPromoter performs numeric promotion on each item in a supplied sequence. There are two subclasses, to handle promotion to double and promotion to float
Constructor Summary
NumericPromoter(Expression exp)
Method Summary
ItemevaluateItem(XPathContext context)
Evaluate as an Item.
voidexplain(ExpressionPresenter out)
Diagnostic print of expression structure.
SequenceIteratoriterate(XPathContext context)
Iterate over the sequence of values
Expressionoptimize(ExpressionVisitor visitor, ItemType contextItemType)
Optimize the expression
protected abstract AtomicValuepromote(AtomicValue value, XPathContext context)
Perform the promotion
Expressionsimplify(ExpressionVisitor visitor)
Simplify an expression
ExpressiontypeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression

Constructor Detail

NumericPromoter

public NumericPromoter(Expression exp)

Method Detail

evaluateItem

public Item evaluateItem(XPathContext context)
Evaluate as an Item. This should only be called if the expression has cardinality zero-or-one

explain

public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

iterate

public SequenceIterator iterate(XPathContext context)
Iterate over the sequence of values

optimize

public Expression optimize(ExpressionVisitor visitor, ItemType contextItemType)
Optimize the expression

promote

protected abstract AtomicValue promote(AtomicValue value, XPathContext context)
Perform the promotion

Parameters: value the numeric or untyped atomic value to be promoted context the XPath dynamic evaluation context

Returns: the value that results from the promotion

simplify

public Expression simplify(ExpressionVisitor visitor)
Simplify an expression

Parameters: visitor an expression visitor

typeCheck

public Expression typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression