From 6ef4653a9acc26cb176119ee7061a24ed6884124 Mon Sep 17 00:00:00 2001 From: Josh Micich Date: Mon, 21 Dec 2009 23:30:32 +0000 Subject: [PATCH] renamed function implementations to avoid potential name clashes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@893030 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hssf/record/formula/eval/FunctionEval.java | 6 +++--- .../poi/hssf/record/formula/functions/DateFunc.java | 9 ++++++--- .../record/formula/functions/{If.java => IfFunc.java} | 4 +++- .../record/formula/functions/{Row.java => RowFunc.java} | 8 ++++++-- .../formula/functions/{Time.java => TimeFunc.java} | 6 ++++-- .../org/apache/poi/ss/formula/WorkbookEvaluator.java | 4 ++-- .../poi/hssf/record/formula/functions/TestRowCol.java | 2 +- .../poi/hssf/record/formula/functions/TestTime.java | 8 ++++---- 8 files changed, 29 insertions(+), 18 deletions(-) rename src/java/org/apache/poi/hssf/record/formula/functions/{If.java => IfFunc.java} (96%) rename src/java/org/apache/poi/hssf/record/formula/functions/{Row.java => RowFunc.java} (93%) rename src/java/org/apache/poi/hssf/record/formula/functions/{Time.java => TimeFunc.java} (96%) diff --git a/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java index 940b2820de..7b17996dc3 100644 --- a/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java +++ b/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java @@ -55,14 +55,14 @@ public final class FunctionEval { 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 @@ public final class FunctionEval { 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; diff --git a/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java b/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java index ca6df7ae23..0422168fd2 100644 --- a/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java +++ b/src/java/org/apache/poi/hssf/record/formula/functions/DateFunc.java @@ -28,6 +28,8 @@ import org.apache.poi.hssf.usermodel.HSSFDateUtil; /** + * Implementation for the Excel function DATE + * * @author Pavel Krupets (pkrupets at palmtreebusiness dot com) */ public final class DateFunc extends Fixed3ArgFunction { @@ -52,16 +54,17 @@ public final class DateFunc extends Fixed3ArgFunction { 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)) { diff --git a/src/java/org/apache/poi/hssf/record/formula/functions/If.java b/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java similarity index 96% rename from src/java/org/apache/poi/hssf/record/formula/functions/If.java rename to src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java index 7dfbf0d556..77e304044b 100644 --- a/src/java/org/apache/poi/hssf/record/formula/functions/If.java +++ b/src/java/org/apache/poi/hssf/record/formula/functions/IfFunc.java @@ -25,9 +25,11 @@ import org.apache.poi.hssf.record.formula.eval.OperandResolver; 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; diff --git a/src/java/org/apache/poi/hssf/record/formula/functions/Row.java b/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java similarity index 93% rename from src/java/org/apache/poi/hssf/record/formula/functions/Row.java rename to src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java index 718ab7c27a..ea1aa3252f 100644 --- a/src/java/org/apache/poi/hssf/record/formula/functions/Row.java +++ b/src/java/org/apache/poi/hssf/record/formula/functions/RowFunc.java @@ -23,7 +23,12 @@ import org.apache.poi.hssf.record.formula.eval.NumberEval; 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 @@ public final class Row implements Function0Arg, Function1Arg { } return ErrorEval.VALUE_INVALID; } - } diff --git a/src/java/org/apache/poi/hssf/record/formula/functions/Time.java b/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java similarity index 96% rename from src/java/org/apache/poi/hssf/record/formula/functions/Time.java rename to src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java index 85f474028a..44f9a2be10 100644 --- a/src/java/org/apache/poi/hssf/record/formula/functions/Time.java +++ b/src/java/org/apache/poi/hssf/record/formula/functions/TimeFunc.java @@ -25,11 +25,13 @@ import org.apache.poi.hssf.record.formula.eval.OperandResolver; 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; diff --git a/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java b/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java index 0e63016250..199217eb88 100644 --- a/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java +++ b/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java @@ -63,7 +63,7 @@ import org.apache.poi.hssf.record.formula.eval.StringEval; 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 @@ public final class WorkbookEvaluator { 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(); diff --git a/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java index 1bec618aa3..532e768eb1 100644 --- a/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java +++ b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java @@ -43,7 +43,7 @@ public final class TestRowCol extends TestCase { } public void testRow() { - Function target = new Row(); + Function target = new RowFunc(); { ValueEval[] args = { EvalFactory.createRefEval("C5"), }; double actual = NumericFunctionInvoker.invoke(target, args); diff --git a/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java index a0522cc5a3..bfd1747393 100644 --- a/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java +++ b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTime.java @@ -30,8 +30,8 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; 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 @@ public final class TestTime extends TestCase { 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); -- 2.39.5