Renamed AreaEval method from getValueAt() to getAbsoluteValue()

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@888582 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Josh Micich 2009-12-08 21:48:54 +00:00
parent 37790e51e4
commit 0c3c85a152
5 changed files with 22 additions and 23 deletions

View File

@ -62,11 +62,11 @@ public interface AreaEval extends ValueEval {
boolean isColumn(); boolean isColumn();
/** /**
* @return the ValueEval from within this area at the specified row and col index. Never * @return the ValueEval from within this area at the specified row and col index. Never
* <code>null</code> (possibly {@link BlankEval}). The specified indexes should be absolute * <code>null</code> (possibly {@link BlankEval}). The specified indexes should be absolute
* indexes in the sheet and not relative indexes within the area. * indexes in the sheet and not relative indexes within the area.
*/ */
ValueEval getValueAt(int row, int col); ValueEval getAbsoluteValue(int row, int col);
/** /**
* returns true if the cell at row and col specified * returns true if the cell at row and col specified
@ -92,9 +92,9 @@ public interface AreaEval extends ValueEval {
int getWidth(); int getWidth();
int getHeight(); int getHeight();
/** /**
* @return the ValueEval from within this area at the specified relativeRowIndex and * @return the ValueEval from within this area at the specified relativeRowIndex and
* relativeColumnIndex. Never <code>null</code> (possibly {@link BlankEval}). The * relativeColumnIndex. Never <code>null</code> (possibly {@link BlankEval}). The
* specified indexes should relative to the top left corner of this area. * specified indexes should relative to the top left corner of this area.
*/ */
ValueEval getRelativeValue(int relativeRowIndex, int relativeColumnIndex); ValueEval getRelativeValue(int relativeRowIndex, int relativeColumnIndex);

View File

@ -67,7 +67,7 @@ public abstract class AreaEvalBase implements AreaEval {
return _lastRow; return _lastRow;
} }
public final ValueEval getValueAt(int row, int col) { public final ValueEval getAbsoluteValue(int row, int col) {
int rowOffsetIx = row - _firstRow; int rowOffsetIx = row - _firstRow;
int colOffsetIx = col - _firstColumn; int colOffsetIx = col - _firstColumn;

View File

@ -151,19 +151,19 @@ public final class OperandResolver {
if(!ae.containsRow(srcCellRow)) { if(!ae.containsRow(srcCellRow)) {
throw EvaluationException.invalidValue(); throw EvaluationException.invalidValue();
} }
return ae.getValueAt(srcCellRow, ae.getFirstColumn()); return ae.getAbsoluteValue(srcCellRow, ae.getFirstColumn());
} }
if(!ae.isRow()) { if(!ae.isRow()) {
// multi-column, multi-row area // multi-column, multi-row area
if(ae.containsRow(srcCellRow) && ae.containsColumn(srcCellCol)) { if(ae.containsRow(srcCellRow) && ae.containsColumn(srcCellCol)) {
return ae.getValueAt(ae.getFirstRow(), ae.getFirstColumn()); return ae.getAbsoluteValue(ae.getFirstRow(), ae.getFirstColumn());
} }
throw EvaluationException.invalidValue(); throw EvaluationException.invalidValue();
} }
if(!ae.containsColumn(srcCellCol)) { if(!ae.containsColumn(srcCellCol)) {
throw EvaluationException.invalidValue(); throw EvaluationException.invalidValue();
} }
return ae.getValueAt(ae.getFirstRow(), srcCellCol); return ae.getAbsoluteValue(ae.getFirstRow(), srcCellCol);
} }
/** /**

View File

@ -497,10 +497,10 @@ public final class WorkbookEvaluator {
if(ae.isColumn()) { if(ae.isColumn()) {
return ae.getRelativeValue(0, 0); return ae.getRelativeValue(0, 0);
} }
return ae.getValueAt(ae.getFirstRow(), srcColNum); return ae.getAbsoluteValue(ae.getFirstRow(), srcColNum);
} }
if (ae.isColumn()) { if (ae.isColumn()) {
return ae.getValueAt(srcRowNum, ae.getFirstColumn()); return ae.getAbsoluteValue(srcRowNum, ae.getFirstColumn());
} }
return ErrorEval.VALUE_INVALID; return ErrorEval.VALUE_INVALID;
} }

View File

@ -25,7 +25,7 @@ import org.apache.poi.hssf.record.formula.functions.EvalFactory;
/** /**
* Tests for <tt>AreaEval</tt> * Tests for <tt>AreaEval</tt>
* *
* @author Josh Micich * @author Josh Micich
*/ */
public final class TestAreaEval extends TestCase { public final class TestAreaEval extends TestCase {
@ -35,15 +35,15 @@ public final class TestAreaEval extends TestCase {
AreaPtg ptg = new AreaPtg("B2:D3"); AreaPtg ptg = new AreaPtg("B2:D3");
NumberEval one = new NumberEval(1); NumberEval one = new NumberEval(1);
ValueEval[] values = { ValueEval[] values = {
one, one,
new NumberEval(2), new NumberEval(2),
new NumberEval(3), new NumberEval(3),
new NumberEval(4), new NumberEval(4),
new NumberEval(5), new NumberEval(5),
new NumberEval(6), new NumberEval(6),
}; };
AreaEval ae = EvalFactory.createAreaEval(ptg, values); AreaEval ae = EvalFactory.createAreaEval(ptg, values);
if (one == ae.getValueAt(1, 2)) { if (one == ae.getAbsoluteValue(1, 2)) {
throw new AssertionFailedError("Identified bug 44950 a"); throw new AssertionFailedError("Identified bug 44950 a");
} }
confirm(1, ae, 1, 1); confirm(1, ae, 1, 1);
@ -52,12 +52,11 @@ public final class TestAreaEval extends TestCase {
confirm(4, ae, 2, 1); confirm(4, ae, 2, 1);
confirm(5, ae, 2, 2); confirm(5, ae, 2, 2);
confirm(6, ae, 2, 3); confirm(6, ae, 2, 3);
} }
private static void confirm(int expectedValue, AreaEval ae, int row, int col) { private static void confirm(int expectedValue, AreaEval ae, int row, int col) {
NumberEval v = (NumberEval) ae.getValueAt(row, col); NumberEval v = (NumberEval) ae.getAbsoluteValue(row, col);
assertEquals(expectedValue, v.getNumberValue(), 0.0); assertEquals(expectedValue, v.getNumberValue(), 0.0);
} }
} }