Class RelationalOperationEval

java.lang.Object
org.apache.poi.ss.formula.functions.Fixed2ArgFunction
org.apache.poi.ss.formula.eval.RelationalOperationEval
All Implemented Interfaces:
ArrayFunction, Function, Function2Arg

public abstract class RelationalOperationEval extends Fixed2ArgFunction implements ArrayFunction
Base class for all comparison operator evaluators
Author:
Amol S. Deshmukh < amolweb at ya hoo dot com >
  • Field Details

    • EqualEval

      public static final Function EqualEval
    • GreaterEqualEval

      public static final Function GreaterEqualEval
    • GreaterThanEval

      public static final Function GreaterThanEval
    • LessEqualEval

      public static final Function LessEqualEval
    • LessThanEval

      public static final Function LessThanEval
    • NotEqualEval

      public static final Function NotEqualEval
  • Constructor Details

    • RelationalOperationEval

      public RelationalOperationEval()
  • Method Details

    • convertComparisonResult

      protected abstract boolean convertComparisonResult(int cmpResult)
      Converts a standard compare result (-1, 0, 1) to true or false according to subclass' comparison type.
    • evaluate

      public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1)
      This is a description of how the relational operators apply in MS Excel. Use this as a guideline when testing/implementing the evaluate methods for the relational operators Evals.
       Bool.TRUE > any number.
       Bool > any string. ALWAYS
       Bool.TRUE > Bool.FALSE
       Bool.FALSE == Blank
      
       Strings are never converted to numbers or booleans
       String > any number. ALWAYS
       Non-empty String > Blank
       Empty String == Blank
       String are sorted dictionary wise
      
       Blank > Negative numbers
       Blank == 0
       Blank invalid input: '<' Positive numbers
       
      Specified by:
      evaluate in interface Function2Arg
    • evaluateArray

      public ValueEval evaluateArray(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
      Specified by:
      evaluateArray in interface ArrayFunction
      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.