public final class OperandResolver
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static ValueEval |
chooseSingleElementFromArea(AreaEval ae,
int srcCellRow,
int srcCellCol)
Implements (some perhaps not well known) Excel functionality to select a single cell from an
area depending on the coordinates of the calling cell.
|
static java.lang.Boolean |
coerceValueToBoolean(ValueEval ve,
boolean stringsAreBlanks) |
static double |
coerceValueToDouble(ValueEval ev)
Applies some conversion rules if the supplied value is not already a number.
|
static int |
coerceValueToInt(ValueEval ev)
Applies some conversion rules if the supplied value is not already an integer.
|
static java.lang.String |
coerceValueToString(ValueEval ve) |
static ValueEval |
getSingleValue(ValueEval arg,
int srcCellRow,
int srcCellCol)
Retrieves a single value from a variety of different argument types according to standard
Excel rules.
|
static java.lang.Double |
parseDouble(java.lang.String pText)
Converts a string to a double using standard rules that Excel would use.
|
public static ValueEval getSingleValue(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException
arg - the evaluated argument as passed to the function or operator.srcCellRow - used when arg is a single column AreaRefsrcCellCol - used when arg is a single row AreaRefnull or ErrorEval.EvaluationException(#VALUE!) - if srcCellRow or srcCellCol do not properly index into
an AreaEval. If the actual value retrieved is an ErrorEval, a corresponding
EvaluationException is thrown.EvaluationExceptionpublic static ValueEval chooseSingleElementFromArea(AreaEval ae, int srcCellRow, int srcCellCol) throws EvaluationException
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 15 | 20 | 25 | |
| 2 | 200 | |||
| 3 | 300 | |||
| 3 | 400 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 15 | 20 | 25 | |
| 2 | 1215 | 1220 | #VALUE! | 200 |
| 3 | 1315 | 1320 | #VALUE! | 300 |
| 4 | #VALUE! | #VALUE! | #VALUE! | 400 |
null. Never
ErrorEval.EvaluationException - if there is a problem with indexing into the area, or if the
evaluated cell has an error.public static int coerceValueToInt(ValueEval ev) throws EvaluationException
0.
Excel typically converts doubles to integers by truncating toward negative infinity.return (int)Math.floor(d);return (int)d; // wrong - rounds toward zeroEvaluationExceptionpublic static double coerceValueToDouble(ValueEval ev) throws EvaluationException
NumberEval.ZERO.ev - must be a NumberEval, StringEval, BoolEval or
BlankEvalEvaluationException(#VALUE!) - only if a StringEval is supplied and cannot be parsed
as a double (See parseDouble() for allowable formats).java.lang.RuntimeException - if the supplied parameter is not NumberEval,
StringEval, BoolEval or BlankEvalEvaluationExceptionpublic static java.lang.Double parseDouble(java.lang.String pText)
null if the specified text cannot be parsed as a numberpublic static java.lang.String coerceValueToString(ValueEval ve)
ve - must be a NumberEval, StringEval, BoolEval, or BlankEvalnullpublic static java.lang.Boolean coerceValueToBoolean(ValueEval ve, boolean stringsAreBlanks) throws EvaluationException
null to represent blank valuesEvaluationException - if ve is an ErrorEval, or if a string value cannot be convertedCopyright 2014 The Apache Software Foundation or its licensors, as applicable.