net.sf.saxon.functions
Class Sum

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.Sum
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, InstructionInfo, Locator

public class Sum
extends Aggregate

Implementation of the fn:sum 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
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD
 
Constructor Summary
Sum()
           
 
Method Summary
 int computeCardinality()
          Determine the cardinality of the function.
 Item evaluateItem(XPathContext context)
          Evaluate the function
 int getImplementationMethod()
          Get implementation method
 ItemType getItemType(TypeHierarchy th)
          Determine the item type of the value returned by the function
static AtomicValue total(SequenceIterator iter, XPathContext context, SourceLocator location)
          Calculate the total of a sequence.
 
Methods inherited from class net.sf.saxon.functions.Aggregate
checkArguments
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, computeSpecialProperties, copy, equals, getDetails, getErrorCodeForTypeErrors, getOperation, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, 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, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, 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

Sum

public Sum()
Method Detail

getImplementationMethod

public int getImplementationMethod()
Get implementation method

Overrides:
getImplementationMethod in class SystemFunction
Returns:
a value that indicates this function is capable of being streamed

getItemType

public ItemType getItemType(TypeHierarchy th)
Description copied from class: SystemFunction
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()
Description copied from class: SystemFunction
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

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

total

public static AtomicValue total(SequenceIterator iter,
                                XPathContext context,
                                SourceLocator location)
                         throws XPathException
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 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.
Throws:
XPathException


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