org.apache.poi.hssf.record.formula.eval
Class RelationalOperationEval
java.lang.Object
org.apache.poi.hssf.record.formula.eval.RelationalOperationEval
- All Implemented Interfaces:
- Function
public abstract class RelationalOperationEval
- extends java.lang.Object
- implements Function
Base class for all comparison operator evaluators
- Author:
- Amol S. Deshmukh < amolweb at ya hoo dot com >
Method Summary |
protected abstract boolean |
convertComparisonResult(int cmpResult)
Converts a standard compare result (-1, 0, 1) to true or false
according to subclass' comparison type. |
ValueEval |
evaluate(ValueEval[] operands,
int srcRow,
short srcCol)
This is a description of how the relational operators apply in MS Excel. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
RelationalOperationEval
public RelationalOperationEval()
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 final ValueEval evaluate(ValueEval[] operands,
int srcRow,
short srcCol)
- 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 < Positive numbers
- Specified by:
evaluate
in interface Function
- Parameters:
operands
- the evaluated function arguments. Empty values are represented with
BlankEval
or MissingArgEval
, never null
.srcRow
- row index of the cell containing the formula under evaluationsrcCol
- 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
.
Copyright 2009 The Apache Software Foundation or
its licensors, as applicable.