## net.sf.saxon.functions
Class Aggregate

    java.lang.Object
      |
      +--net.sf.saxon.expr.ComputedExpression
            |
            +--net.sf.saxon.expr.FunctionCall
                  |
                  +--net.sf.saxon.functions.SystemFunction
                        |
                        +--net.sf.saxon.functions.Aggregate

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class Aggregate
extends SystemFunction

This class implements the sum(), avg(), count() functions,

See Also:
  Serialized Form

Field Summary
`static int` `AVG`
`static int` `COUNT`
`static int` `SUM`

Fields inherited from class net.sf.saxon.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

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
`Aggregate()`

Method Summary
`void` `checkArguments(StaticContext env)` Static analysis: prevent sorting of the argument
`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()` 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

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, computeCardinality, display, getDetails, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`analyze, checkArgumentCount, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, preEvaluate, promote, setArguments, setFunctionNameCode, simplify, simplifyArguments`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SUM

    public static final int SUM

See Also:
  Constant Field Values

### AVG

    public static final int AVG

See Also:
  Constant Field Values

### COUNT

    public static final int COUNT

See Also:
  Constant Field Values

Constructor Detail

### Aggregate

    public Aggregate()

Method Detail

### checkArguments

    public void checkArguments(StaticContext env)
                        throws XPathException

  Static analysis: prevent sorting of the argument

  Overrides:
    `checkArguments` in class `SystemFunction`
    `XPathException`

### getItemType

    public ItemType getItemType()

  Determine the item type of the value returned by the function

  Specified by:
    `getItemType` in interface `Expression`
  Overrides:
    `getItemType` in class `SystemFunction`
  Returns:
    a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)

### evaluateItem

    public Item evaluateItem(XPathContext context)
                      throws XPathException

  Evaluate the function

  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

### count

    public static int count(SequenceIterator iter)
                     throws XPathException

  Get the number of items in a sequence identified by a SequenceIterator

  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

### isCountFunction

    public static boolean isCountFunction(Expression exp)

  Determine whether a given expression is a call to the count() function