Interface ArrayFunction

All Known Implementing Classes:
BooleanFunction, IfFunc, LogicalFunction, RelationalOperationEval, TwoOperandNumericOperation, UnaryMinusEval, UnaryPlusEval, Value

public interface ArrayFunction
Common Interface for any excel built-in function that has implemented array formula functionality.
  • Method Details

    • evaluateArray

      ValueEval evaluateArray(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
      Parameters:
      args - the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.
      srcRowIndex - row index of the cell containing the formula under evaluation
      srcColumnIndex - 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.
    • evaluateTwoArrayArgs

      default ValueEval evaluateTwoArrayArgs(ValueEval arg0, ValueEval arg1, int srcRowIndex, int srcColumnIndex, BiFunction<ValueEval,ValueEval,ValueEval> evalFunc)
      Evaluate an array function with two arguments.
      Parameters:
      arg0 - the first function argument. Empty values are represented with BlankEval or MissingArgEval, never null
      arg1 - the first function argument. Empty values are represented with BlankEval or MissingArgEval, never null
      srcRowIndex - row index of the cell containing the formula under evaluation
      srcColumnIndex - 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.
    • evaluateOneArrayArg

      default ValueEval evaluateOneArrayArg(ValueEval arg0, int srcRowIndex, int srcColumnIndex, Function<ValueEval,ValueEval> evalFunc)
    • _evaluateTwoArrayArgs

      static ValueEval _evaluateTwoArrayArgs(ValueEval arg0, ValueEval arg1, int srcRowIndex, int srcColumnIndex, BiFunction<ValueEval,ValueEval,ValueEval> evalFunc)
    • _evaluateOneArrayArg

      static ValueEval _evaluateOneArrayArg(ValueEval arg0, int srcRowIndex, int srcColumnIndex, Function<ValueEval,ValueEval> evalFunc)