Author: josh
Date: Mon Dec 21 23:30:32 2009
New Revision: 893030
URL: http://svn.apache.org/viewvc?rev=893030&view=rev
Log:
renamed function implementations to avoid potential name clashes
Added:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java
- copied, changed from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java
- copied, changed from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Row.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java
- copied, changed from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java
Removed:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Row.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java
poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java?rev=893030&r1=893029&r2=893030&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
Mon Dec 21 23:30:32 2009
@@ -55,14 +55,14 @@
Function[] retval = new Function[368];
retval[0] = new Count();
- retval[ID.IF] = new If();
+ retval[ID.IF] = new IfFunc();
retval[2] = LogicalFunction.ISNA;
retval[3] = LogicalFunction.ISERROR;
retval[ID.SUM] = AggregateFunction.SUM;
retval[5] = AggregateFunction.AVERAGE;
retval[6] = AggregateFunction.MIN;
retval[7] = AggregateFunction.MAX;
- retval[8] = new Row(); // ROW
+ retval[8] = new RowFunc(); // ROW
retval[9] = new Column();
retval[10] = new Na();
retval[11] = new Npv();
@@ -103,7 +103,7 @@
retval[63] = NumericFunction.RAND;
retval[64] = new Match();
retval[65] = DateFunc.instance;
- retval[66] = new Time();
+ retval[66] = new TimeFunc();
retval[67] = CalendarFieldFunction.DAY;
retval[68] = CalendarFieldFunction.MONTH;
retval[69] = CalendarFieldFunction.YEAR;
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java?rev=893030&r1=893029&r2=893030&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java
Mon Dec 21 23:30:32 2009
@@ -28,6 +28,8 @@
/**
+ * Implementation for the Excel function DATE
+ *
* @author Pavel Krupets (pkrupets at palmtreebusiness dot com)
*/
public final class DateFunc extends Fixed3ArgFunction {
@@ -52,16 +54,17 @@
return new NumberEval(result);
}
- private static double evaluate(int year, int month, int day) throws
EvaluationException {
+ private static double evaluate(int year, int month, int pDay) throws
EvaluationException {
- if (year < 0 || month < 0 || day < 0) {
+ if (year < 0 || month < 0 || pDay < 0) {
throw new EvaluationException(ErrorEval.VALUE_INVALID);
}
- if (year == 1900 && month == Calendar.FEBRUARY && day == 29) {
+ if (year == 1900 && month == Calendar.FEBRUARY && pDay == 29) {
return 60.0;
}
+ int day = pDay;
if (year == 1900) {
if ((month == Calendar.JANUARY && day >= 60) ||
(month == Calendar.FEBRUARY && day >=
30)) {
Copied:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java
(from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java)
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java?p2=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java&p1=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java&r1=893025&r2=893030&rev=893030&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java
Mon Dec 21 23:30:32 2009
@@ -25,9 +25,11 @@
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
+ * Implementation for the Excel function IF
+ *
* @author Amol S. Deshmukh < amolweb at ya hoo dot com >
*/
-public final class If extends Var2or3ArgFunction {
+public final class IfFunc extends Var2or3ArgFunction {
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex,
ValueEval arg0, ValueEval arg1) {
boolean b;
Copied:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java
(from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Row.java)
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java?p2=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java&p1=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Row.java&r1=893025&r2=893030&rev=893030&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Row.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java
Mon Dec 21 23:30:32 2009
@@ -23,7 +23,12 @@
import org.apache.poi.hssf.record.formula.eval.RefEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
-public final class Row implements Function0Arg, Function1Arg {
+/**
+ * Implementation for the Excel function ROW
+ *
+ * @author Josh Micich
+ */
+public final class RowFunc implements Function0Arg, Function1Arg {
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex) {
return new NumberEval(srcRowIndex+1);
@@ -51,5 +56,4 @@
}
return ErrorEval.VALUE_INVALID;
}
-
}
Copied:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java
(from r893025,
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java)
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java?p2=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java&p1=poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java&r1=893025&r2=893030&rev=893030&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java
Mon Dec 21 23:30:32 2009
@@ -25,11 +25,13 @@
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
+ * Implementation for the Excel function TIME
+ *
* @author Steven Butler (sebutler @ gmail dot com)
*
- * Based on POI org.apache.hssf.record.formula.DateFunc.java
+ * Based on POI {...@link DateFunc}
*/
-public final class Time extends Fixed3ArgFunction {
+public final class TimeFunc extends Fixed3ArgFunction {
private static final int SECONDS_PER_MINUTE = 60;
private static final int SECONDS_PER_HOUR = 3600;
Modified: poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java?rev=893030&r1=893029&r2=893030&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java Mon Dec
21 23:30:32 2009
@@ -63,7 +63,7 @@
import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.functions.Choose;
import org.apache.poi.hssf.record.formula.functions.FreeRefFunction;
-import org.apache.poi.hssf.record.formula.functions.If;
+import org.apache.poi.hssf.record.formula.functions.IfFunc;
import org.apache.poi.hssf.record.formula.udf.UDFFinder;
import org.apache.poi.hssf.util.CellReference;
import
org.apache.poi.ss.formula.CollaboratingWorkbooksEnvironment.WorkbookNotFoundException;
@@ -373,7 +373,7 @@
ValueEval arg0 = stack.pop();
boolean evaluatedPredicate;
try {
- evaluatedPredicate =
If.evaluateFirstArg(arg0, ec.getRowIndex(), ec.getColumnIndex());
+ evaluatedPredicate =
IfFunc.evaluateFirstArg(arg0, ec.getRowIndex(), ec.getColumnIndex());
} catch (EvaluationException e) {
stack.push(e.getErrorEval());
int dist = attrPtg.getData();
Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java?rev=893030&r1=893029&r2=893030&view=diff
==============================================================================
---
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
(original)
+++
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
Mon Dec 21 23:30:32 2009
@@ -43,7 +43,7 @@
}
public void testRow() {
- Function target = new Row();
+ Function target = new RowFunc();
{
ValueEval[] args = { EvalFactory.createRefEval("C5"), };
double actual = NumericFunctionInvoker.invoke(target,
args);
Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java?rev=893030&r1=893029&r2=893030&view=diff
==============================================================================
---
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java
(original)
+++
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java
Mon Dec 21 23:30:32 2009
@@ -30,8 +30,8 @@
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
- * Tests for {...@link Time}
- *
+ * Tests for {...@link TimeFunc}
+ *
* @author @author Steven Butler (sebutler @ gmail dot com)
*/
public final class TestTime extends TestCase {
@@ -106,13 +106,13 @@
int expH = Integer.parseInt(parts[0]);
int expM = Integer.parseInt(parts[1]);
int expS = Integer.parseInt(parts[2]);
-
+
double expectedValue = (expH*SECONDS_PER_HOUR +
expM*SECONDS_PER_MINUTE + expS)/SECONDS_PER_DAY;
cell11.setCellFormula(formulaText);
cell11.setCellStyle(style);
evaluator.clearAllCachedResultValues();
-
+
double actualValue =
evaluator.evaluate(cell11).getNumberValue();
assertEquals(expectedValue, actualValue, 0.0);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]