Class MultiOperandNumericFunction

java.lang.Object
org.apache.poi.ss.formula.functions.MultiOperandNumericFunction
All Implemented Interfaces:
Function
Direct Known Subclasses:
AggregateFunction, MatrixFunction.MutableValueCollector, MinaMaxa, Mirr

public abstract class MultiOperandNumericFunction extends Object implements Function
This is the super class for all excel function evaluator classes that take variable number of operands, and where the order of operands does not matter
  • Constructor Details

    • MultiOperandNumericFunction

      protected MultiOperandNumericFunction(boolean isReferenceBoolCounted, boolean isBlankCounted)
  • Method Details

    • evaluate

      public final ValueEval evaluate(ValueEval[] args, int srcCellRow, int srcCellCol)
      Specified by:
      evaluate in interface Function
      Parameters:
      args - the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.
      srcCellRow - row index of the cell containing the formula under evaluation
      srcCellCol - column index of the cell containing the formula under evaluation
      Returns:
      The evaluated result, possibly an ErrorEval, never null. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to Double.NaN be sure to translate the result to ErrorEval.NUM_ERROR.
    • evaluate

      protected abstract double evaluate(double[] values) throws EvaluationException
      Throws:
      EvaluationException
    • getMaxNumOperands

      protected int getMaxNumOperands()
      Maximum number of operands accepted by this function. Subclasses may override to change default value.
    • getNumberArray

      protected final double[] getNumberArray(ValueEval[] operands) throws EvaluationException
      Returns a double array that contains values for the numeric cells from among the list of operands. Blanks and Blank equivalent cells are ignored. Error operands or cells containing operands of type that are considered invalid and would result in #VALUE! error in excel cause this function to return null.
      Returns:
      never null
      Throws:
      EvaluationException
    • isSubtotalCounted

      public boolean isSubtotalCounted()
      Whether to count nested subtotals.