net.sf.saxon.functions
Class Average

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.FunctionCall
          extended by net.sf.saxon.functions.SystemFunction
              extended by net.sf.saxon.functions.Aggregate
                  extended by net.sf.saxon.functions.Average
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

public class Average
extends Aggregate

Implementation of the fn:avg function

See Also:
Serialized Form

Field Summary
 
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.Expression
EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD
 
Constructor Summary
Average()
           
 
Method Summary
static AtomicValue average(SequenceIterator iter, XPathContext context, SourceLocator location)
          Calculate average
 int computeCardinality()
          Determine the cardinality of the function.
 Item evaluateItem(XPathContext context)
          Evaluate the function
 int getImplementationMethod()
          An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
 ItemType getItemType(TypeHierarchy th)
          Determine the item type of the value returned by the function
 
Methods inherited from class net.sf.saxon.functions.Aggregate
checkArguments
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, computeSpecialProperties, copy, getDetails, getErrorCodeForTypeErrors, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck
 
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Average

public Average()
Method Detail

getImplementationMethod

public int getImplementationMethod()
Description copied from class: SystemFunction
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is provided directly. The other methods will always be available indirectly, using an implementation that relies on one of the other methods.

Overrides:
getImplementationMethod in class SystemFunction
Returns:
the implementation method, for example Expression.ITERATE_METHOD or Expression.EVALUATE_METHOD or Expression.PROCESS_METHOD

getItemType

public ItemType getItemType(TypeHierarchy th)
Determine the item type of the value returned by the function

Overrides:
getItemType in class SystemFunction
Parameters:
th - the type hierarchy cache
Returns:
a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)

computeCardinality

public int computeCardinality()
Determine the cardinality of the function.

Overrides:
computeCardinality in class SystemFunction
Returns:
the computed cardinality, as one of the values StaticProperty.ALLOWS_ZERO_OR_ONE, StaticProperty.EXACTLY_ONE, StaticProperty.ALLOWS_ONE_OR_MORE, StaticProperty.ALLOWS_ZERO_OR_MORE

evaluateItem

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

Specified by:
evaluateItem in interface EvaluableItem
Overrides:
evaluateItem in class Expression
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

average

public static AtomicValue average(SequenceIterator iter,
                                  XPathContext context,
                                  SourceLocator location)
                           throws XPathException
Calculate average

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
Throws:
XPathException


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.