net.sf.saxon.functions
public class Aggregate extends SystemFunction
Field Summary | |
---|---|
static int | AVG |
static int | COUNT |
static int | SUM |
Method Summary | |
---|---|
static AtomicValue | average(SequenceIterator iter, XPathContext context, SourceLocator location)
Calculate average |
void | checkArguments(ExpressionVisitor visitor)
Static analysis: prevent sorting of the argument |
int | computeCardinality()
Determine the cardinality of the function. |
static int | count(SequenceIterator iter)
Get the number of items in a sequence identified by a SequenceIterator |
Item | evaluateItem(XPathContext context)
Evaluate the function |
ItemType | getItemType(TypeHierarchy th)
Determine the item type of the value returned by the function |
static boolean | isCountFunction(Expression exp)
Determine whether a given expression is a call to the count() function |
static AtomicValue | total(SequenceIterator iter, XPathContext context, SourceLocator location)
Calculate the total of a sequence. |
Parameters: iter iterator over the items to be totalled context the XPath dynamic context location location of the expression in the source for diagnostics
Returns: the average of the values
Parameters: iter The SequenceIterator. This method moves the current position of the supplied iterator; if this isn't safe, make a copy of the iterator first by calling getAnother(). The supplied iterator must be positioned before the first item (there must have been no call on next()).
Returns: the number of items in the underlying sequence
Throws: XPathException if a failure occurs reading the input sequence
Parameters: th the type hierarchy cache
Parameters: exp an expression to be examined
Returns: true if the expression is a call to the count() function
Parameters: iter iterator over the items to be totalled context the XPath dynamic context location location of the expression in the source for diagnostics
Returns: the total, according to the rules of the XPath sum() function, but returning null if the sequence is empty. (It's then up to the caller to decide what the correct result is for an empty sequence.