net.sf.saxon.functions

Class NumberFn

public class NumberFn extends SystemFunction implements ItemMappingFunction

Implements the XPath number() function. This can also be used as a mapping function in a MappingIterator to map a sequence of values to numbers.
Method Summary
PathMap.PathMapNodeSetaddDocToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodes)
Add a representation of a doc() call or similar function to a PathMap.
static DoubleValueconvert(AtomicValue value)
Static method to perform the same conversion as the number() function.
ItemevaluateItem(XPathContext context)
Evaluate in a general context
Itemmap(Item item)
Mapping function for use when converting a sequence of atomic values to doubles using the rules of the number() function
Expressionsimplify(ExpressionVisitor visitor)
Simplify and validate.
ExpressiontypeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression.

Method Detail

addDocToPathMap

public PathMap.PathMapNodeSet addDocToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodes)
Add a representation of a doc() call or similar function to a PathMap. This is a convenience method called by the addToPathMap() methods for doc(), document(), collection() and similar functions. These all create a new root expression in the path map.

Parameters: pathMap the PathMap to which the expression should be added pathMapNodes the node in the PathMap representing the focus at the point where this expression is called. Set to null if this expression appears at the top level.

Returns: the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression

convert

public static DoubleValue convert(AtomicValue value)
Static method to perform the same conversion as the number() function. This is different from the convert(Type.DOUBLE) in that it produces NaN rather than an error for non-numeric operands.

Parameters: value the value to be converted

Returns: the result of the conversion

evaluateItem

public Item evaluateItem(XPathContext context)
Evaluate in a general context

map

public Item map(Item item)
Mapping function for use when converting a sequence of atomic values to doubles using the rules of the number() function

simplify

public Expression simplify(ExpressionVisitor visitor)
Simplify and validate. This is a pure function so it can be simplified in advance if the arguments are known

Parameters: visitor an expression visitor

typeCheck

public Expression typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression. This also calls preEvaluate() to evaluate the function if all the arguments are constant; functions that do not require this behavior can override the preEvaluate method.