## net.sf.saxon.functions
Class Sum

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.Aggregate
                      net.sf.saxon.functions.Sum

All Implemented Interfaces:
  Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, 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
`EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD`

Constructor Summary
`Sum()`

Method Summary
`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, computeCardinality, 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

### 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)

### 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

### 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-2010 Saxonica Limited. All rights reserved.