Class Sum

All Implemented Interfaces:
Callable, Function, GroundedValue, Item, Sequence

public class Sum extends FoldingFunction
Implementation of the fn:sum function
  • Constructor Details

    • Sum

      public Sum()
  • Method Details

    • getResultItemType

      public ItemType getResultItemType(Expression[] args)
      Description copied from class: SystemFunction
      Get the return type, given knowledge of the actual arguments
      Overrides:
      getResultItemType in class SystemFunction
      Parameters:
      args - the actual arguments supplied
      Returns:
      the best available item type that the function will return
    • getCardinality

      public int getCardinality(Expression[] arguments)
      Description copied from class: SystemFunction
      Get the cardinality, given knowledge of the actual arguments
      Overrides:
      getCardinality in class SystemFunction
      Parameters:
      arguments - the actual arguments supplied
      Returns:
      the most precise available cardinality that the function will return
    • getFold

      public Fold getFold(XPathContext context, Sequence... additionalArguments) throws XPathException
      Create the Fold object which actually performs the evaluation.
      Specified by:
      getFold in class FoldingFunction
      Parameters:
      context - the dynamic evaluation context
      additionalArguments - the values of all arguments other than the first.
      Returns:
      the Fold object used to compute the function
      Throws:
      XPathException - if a dynamic error occurs
    • total

      public static AtomicValue total(SequenceIterator in, XPathContext context, Location locator) throws XPathException
      Static method to compute a total, invoked from compiled bytecode
      Parameters:
      in - the sequence of items to be summed
      context - dynamic context for evaluation
      locator - expression location for diagnostics
      Returns:
      null if the input is empty, otherwise the total as defined by the semantics of the sum() function
      Throws:
      XPathException - if a dynamic error occurs
    • getCompilerName

      public String getCompilerName()
      Description copied from class: SystemFunction
      Get the (local) name of a class that can be used to generate bytecode for this system function
      Overrides:
      getCompilerName in class SystemFunction
      Returns:
      the name of a bytecode generation class, or null if there is no bytecode support for this function