You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2009/08/17 22:04:46 UTC
svn commit: r805119 [1/2] - in /poi/trunk/src:
java/org/apache/poi/hssf/record/formula/atp/
java/org/apache/poi/hssf/record/formula/eval/
java/org/apache/poi/hssf/record/formula/functions/
testcases/org/apache/poi/hssf/record/formula/functions/
Author: josh
Date: Mon Aug 17 20:04:45 2009
New Revision: 805119
URL: http://svn.apache.org/viewvc?rev=805119&view=rev
Log:
Replaced obsolete Eval with ValueEval in signature of Function.evaluate()
Removed:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Islogical.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isnontext.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isnumber.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Istext.java
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/atp/AnalysisToolPak.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/CalendarFieldFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Column.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Count.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/False.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Function.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/If.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Index.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Match.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Na.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Not.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Now.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rand.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/Rows.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/T.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Time.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Today.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/True.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Value.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestNper.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestValue.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/atp/AnalysisToolPak.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/atp/AnalysisToolPak.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/atp/AnalysisToolPak.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/atp/AnalysisToolPak.java Mon Aug 17 20:04:45 2009
@@ -20,7 +20,6 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.EvaluationWorkbook;
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=805119&r1=805118&r2=805119&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 Aug 17 20:04:45 2009
@@ -20,7 +20,63 @@
import org.apache.poi.hssf.record.formula.AbstractFunctionPtg;
import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
-import org.apache.poi.hssf.record.formula.functions.*;
+import org.apache.poi.hssf.record.formula.functions.AggregateFunction;
+import org.apache.poi.hssf.record.formula.functions.And;
+import org.apache.poi.hssf.record.formula.functions.CalendarFieldFunction;
+import org.apache.poi.hssf.record.formula.functions.Choose;
+import org.apache.poi.hssf.record.formula.functions.Column;
+import org.apache.poi.hssf.record.formula.functions.Columns;
+import org.apache.poi.hssf.record.formula.functions.Count;
+import org.apache.poi.hssf.record.formula.functions.Counta;
+import org.apache.poi.hssf.record.formula.functions.Countif;
+import org.apache.poi.hssf.record.formula.functions.DateFunc;
+import org.apache.poi.hssf.record.formula.functions.Errortype;
+import org.apache.poi.hssf.record.formula.functions.Even;
+import org.apache.poi.hssf.record.formula.functions.False;
+import org.apache.poi.hssf.record.formula.functions.FinanceFunction;
+import org.apache.poi.hssf.record.formula.functions.Find;
+import org.apache.poi.hssf.record.formula.functions.FreeRefFunction;
+import org.apache.poi.hssf.record.formula.functions.Function;
+import org.apache.poi.hssf.record.formula.functions.Hlookup;
+import org.apache.poi.hssf.record.formula.functions.Hyperlink;
+import org.apache.poi.hssf.record.formula.functions.If;
+import org.apache.poi.hssf.record.formula.functions.Index;
+import org.apache.poi.hssf.record.formula.functions.Indirect;
+import org.apache.poi.hssf.record.formula.functions.IsError;
+import org.apache.poi.hssf.record.formula.functions.IsNa;
+import org.apache.poi.hssf.record.formula.functions.Isblank;
+import org.apache.poi.hssf.record.formula.functions.Isref;
+import org.apache.poi.hssf.record.formula.functions.LogicalFunction;
+import org.apache.poi.hssf.record.formula.functions.Lookup;
+import org.apache.poi.hssf.record.formula.functions.Match;
+import org.apache.poi.hssf.record.formula.functions.MinaMaxa;
+import org.apache.poi.hssf.record.formula.functions.Mode;
+import org.apache.poi.hssf.record.formula.functions.Na;
+import org.apache.poi.hssf.record.formula.functions.Not;
+import org.apache.poi.hssf.record.formula.functions.NotImplementedFunction;
+import org.apache.poi.hssf.record.formula.functions.Now;
+import org.apache.poi.hssf.record.formula.functions.NumericFunction;
+import org.apache.poi.hssf.record.formula.functions.Odd;
+import org.apache.poi.hssf.record.formula.functions.Offset;
+import org.apache.poi.hssf.record.formula.functions.Or;
+import org.apache.poi.hssf.record.formula.functions.Pi;
+import org.apache.poi.hssf.record.formula.functions.Rand;
+import org.apache.poi.hssf.record.formula.functions.Replace;
+import org.apache.poi.hssf.record.formula.functions.Row;
+import org.apache.poi.hssf.record.formula.functions.Rows;
+import org.apache.poi.hssf.record.formula.functions.Substitute;
+import org.apache.poi.hssf.record.formula.functions.Sumif;
+import org.apache.poi.hssf.record.formula.functions.Sumproduct;
+import org.apache.poi.hssf.record.formula.functions.Sumx2my2;
+import org.apache.poi.hssf.record.formula.functions.Sumx2py2;
+import org.apache.poi.hssf.record.formula.functions.Sumxmy2;
+import org.apache.poi.hssf.record.formula.functions.T;
+import org.apache.poi.hssf.record.formula.functions.TextFunction;
+import org.apache.poi.hssf.record.formula.functions.Time;
+import org.apache.poi.hssf.record.formula.functions.Today;
+import org.apache.poi.hssf.record.formula.functions.True;
+import org.apache.poi.hssf.record.formula.functions.Value;
+import org.apache.poi.hssf.record.formula.functions.Vlookup;
import org.apache.poi.ss.formula.eval.NotImplementedException;
/**
@@ -151,8 +207,8 @@
retval[124] = new Find();
- retval[127] = new Istext();
- retval[128] = new Isnumber();
+ retval[127] = LogicalFunction.IsText;
+ retval[128] = LogicalFunction.IsNumber;
retval[129] = new Isblank();
retval[130] = new T();
@@ -163,9 +219,9 @@
retval[183] = AggregateFunction.PRODUCT;
retval[184] = NumericFunction.FACT;
- retval[190] = new Isnontext();
+ retval[190] = LogicalFunction.IsNonText;
- retval[198] = new Islogical();
+ retval[198] = LogicalFunction.IsLogical;
retval[212] = NumericFunction.ROUNDUP;
retval[213] = NumericFunction.ROUNDDOWN;
@@ -248,7 +304,7 @@
if (f == null) {
throw new NotImplementedException("FuncIx=" + getFunctionIndex());
}
- return (ValueEval) f.evaluate(operands, srcRow, srcCol);
+ return f.evaluate(operands, srcRow, srcCol);
}
public int getNumberOfOperands() {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java Mon Aug 17 20:04:45 2009
@@ -39,7 +39,7 @@
*/
public abstract class BooleanFunction implements Function {
- public final Eval evaluate(Eval[] args, int srcRow, short srcCol) {
+ public final ValueEval evaluate(ValueEval[] args, int srcRow, short srcCol) {
if (args.length < 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/CalendarFieldFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/CalendarFieldFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/CalendarFieldFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/CalendarFieldFunction.java Mon Aug 17 20:04:45 2009
@@ -22,7 +22,6 @@
import java.util.GregorianCalendar;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -49,7 +48,7 @@
_needsOneBaseAdjustment = needsOneBaseAdjustment;
}
- public Eval evaluate(Eval[] operands, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcCellRow, short srcCellCol) {
if (operands.length != 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java Mon Aug 17 20:04:45 2009
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -29,7 +28,7 @@
*/
public final class Choose implements Function {
- public Eval evaluate(Eval[] args, int srcRowIndex, short srcColumnIndex) {
+ public ValueEval evaluate(ValueEval[] args, int srcRowIndex, short srcColumnIndex) {
if (args.length < 2) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Column.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Column.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Column.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Column.java Mon Aug 17 20:04:45 2009
@@ -19,13 +19,12 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
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 Column implements Function {
- public Eval evaluate(Eval[] evals, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] evals, int srcCellRow, short srcCellCol) {
ValueEval retval = null;
int cnum = -1;
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java Mon Aug 17 20:04:45 2009
@@ -22,6 +22,7 @@
import org.apache.poi.hssf.record.formula.eval.Eval;
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;
/**
* Implementation for Excel COLUMNS function.
@@ -30,7 +31,7 @@
*/
public final class Columns implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
switch(args.length) {
case 1:
// expected
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Count.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Count.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Count.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Count.java Mon Aug 17 20:04:45 2009
@@ -21,6 +21,7 @@
import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.MissingArgEval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.functions.CountUtils.I_MatchPredicate;
/**
@@ -36,7 +37,7 @@
*/
public final class Count implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
int nArgs = args.length;
if (nArgs < 1) {
// too few arguments
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java Mon Aug 17 20:04:45 2009
@@ -21,6 +21,7 @@
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.functions.CountUtils.I_MatchPredicate;
/**
@@ -34,7 +35,7 @@
*/
public final class Counta implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
int nArgs = args.length;
if (nArgs < 1) {
// too few arguments
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java Mon Aug 17 20:04:45 2009
@@ -29,6 +29,7 @@
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.RefEval;
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.CountUtils.I_MatchPredicate;
import org.apache.poi.ss.usermodel.ErrorConstants;
@@ -400,7 +401,7 @@
}
}
- public Eval evaluate(Eval[] args, int srcRowIndex, short srcColumnIndex) {
+ public ValueEval evaluate(ValueEval[] args, int srcRowIndex, short srcColumnIndex) {
switch(args.length) {
case 2:
// expected
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java Mon Aug 17 20:04:45 2009
@@ -18,10 +18,10 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
/**
@@ -52,7 +52,7 @@
*/
public final class Errortype implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
try {
OperandResolver.getSingleValue(args[0], srcCellRow, srcCellCol);
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/False.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/False.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/False.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/False.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
@@ -28,7 +27,7 @@
*/
public final class False implements Function {
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
ValueEval retval;
switch (operands.length) {
default:
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Function.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Function.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Function.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Function.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.MissingArgEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -31,16 +30,14 @@
public interface Function {
/**
- * @param args the evaluated function arguments. Elements of this array typically implement
- * {@link ValueEval}. Empty values are represented with {@link BlankEval} or {@link
- * MissingArgEval}, never <code>null</code>.
+ * @param args the evaluated function arguments. Empty values are represented with
+ * {@link BlankEval} or {@link MissingArgEval}, never <code>null</code>.
* @param srcRowIndex row index of the cell containing the formula under evaluation
* @param srcColumnIndex column index of the cell containing the formula under evaluation
* @return The evaluated result, possibly an {@link ErrorEval}, never <code>null</code>.
* <b>Note</b> - Excel uses the error code <i>#NUM!</i> instead of IEEE <i>NaN</i>, so when
* numeric functions evaluate to {@link Double#NaN} be sure to translate the result to {@link
* ErrorEval#NUM_ERROR}.
- *
*/
- Eval evaluate(Eval[] args, int srcRowIndex, short srcColumnIndex);
+ ValueEval evaluate(ValueEval[] args, int srcRowIndex, short srcColumnIndex);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java Mon Aug 17 20:04:45 2009
@@ -42,7 +42,7 @@
*/
public final class Hlookup implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
Eval arg3 = null;
switch(args.length) {
case 4:
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java Mon Aug 17 20:04:45 2009
@@ -18,10 +18,10 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.StringEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Implementation of Excel HYPERLINK function.<p/>
@@ -41,7 +41,7 @@
*/
public final class Hyperlink implements Function {
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
int lastArgIx = operands.length - 1;
if (lastArgIx < 0 || lastArgIx > 1) {
return ErrorEval.VALUE_INVALID;
Modified: 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/If.java?rev=805119&r1=805118&r2=805119&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/If.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -30,8 +29,8 @@
*/
public final class If implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
- Eval falseResult;
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
+ ValueEval falseResult;
switch (args.length) {
case 3:
falseResult = args[2];
@@ -54,7 +53,7 @@
return falseResult;
}
- private static boolean evaluateFirstArg(Eval arg, int srcCellRow, short srcCellCol)
+ private static boolean evaluateFirstArg(ValueEval arg, int srcCellRow, short srcCellCol)
throws EvaluationException {
ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
Boolean b = OperandResolver.coerceValueToBoolean(ve, false);
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Index.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Index.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Index.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Index.java Mon Aug 17 20:04:45 2009
@@ -47,7 +47,7 @@
*/
public final class Index implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
int nArgs = args.length;
if(nArgs < 2) {
// too few arguments
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java Mon Aug 17 20:04:45 2009
@@ -20,7 +20,6 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.RefEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -30,7 +29,7 @@
*/
public final class IsError implements Function {
- public Eval evaluate(Eval[] operands, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcCellRow, short srcCellCol) {
ValueEval retval = null;
boolean b = false;
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java Mon Aug 17 20:04:45 2009
@@ -22,6 +22,7 @@
import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.ss.usermodel.ErrorConstants;
/**
@@ -38,7 +39,7 @@
*/
public final class IsNa implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if(args.length != 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java Mon Aug 17 20:04:45 2009
@@ -31,7 +31,7 @@
*/
public final class Isblank implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if(args.length != 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java Mon Aug 17 20:04:45 2009
@@ -22,26 +22,22 @@
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.RefEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* @author Amol S. Deshmukh < amolweb at ya hoo dot com >
- *
*/
public final class Isref implements Function {
- public Eval evaluate(Eval[] operands, int srcCellRow, short srcCellCol) {
- Eval retval = BoolEval.FALSE;
+ public ValueEval evaluate(ValueEval[] operands, int srcCellRow, short srcCellCol) {
+ if (operands.length != 1) {
+ return ErrorEval.VALUE_INVALID;
+ }
- switch (operands.length) {
- default:
- retval = ErrorEval.VALUE_INVALID;
- break;
- case 1:
- Eval eval = operands[0];
- if (eval instanceof RefEval || eval instanceof AreaEval) {
- retval = BoolEval.TRUE;
- }
- }
+ Eval eval = operands[0];
+ if (eval instanceof RefEval || eval instanceof AreaEval) {
+ return BoolEval.TRUE;
+ }
- return retval;
- }
+ return BoolEval.FALSE;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java Mon Aug 17 20:04:45 2009
@@ -17,28 +17,76 @@
package org.apache.poi.hssf.record.formula.functions;
+import org.apache.poi.hssf.record.formula.eval.BoolEval;
+import org.apache.poi.hssf.record.formula.eval.ErrorEval;
+import org.apache.poi.hssf.record.formula.eval.EvaluationException;
+import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.RefEval;
+import org.apache.poi.hssf.record.formula.eval.StringEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* @author Amol S. Deshmukh < amolweb at ya hoo dot com >
- *
*/
public abstract class LogicalFunction implements Function {
- /**
- * recursively evaluate any RefEvals
- * TODO - use {@link OperandResolver}
- */
- protected ValueEval xlateRefEval(RefEval reval) {
- ValueEval retval = reval.getInnerValueEval();
-
- if (retval instanceof RefEval) {
- RefEval re = (RefEval) retval;
- retval = xlateRefEval(re);
- }
-
- return retval;
- }
+ /**
+ * recursively evaluate any RefEvals TODO - use {@link OperandResolver}
+ */
+ private static ValueEval xlateRefEval(RefEval reval) {
+ ValueEval retval = reval.getInnerValueEval();
+
+ if (retval instanceof RefEval) {
+ RefEval re = (RefEval) retval;
+ retval = xlateRefEval(re);
+ }
+
+ return retval;
+ }
+
+ public final ValueEval evaluate(ValueEval[] operands, int srcCellRow, short srcCellCol) {
+ if (operands.length != 1) {
+ return ErrorEval.VALUE_INVALID;
+ }
+ ValueEval ve;
+ try {
+ ve = OperandResolver.getSingleValue(operands[0], srcCellRow, srcCellCol);
+ } catch (EvaluationException e) {
+ if (false) {
+ // Note - it is more usual to propagate error codes straight to the result like this:
+ return e.getErrorEval();
+ // but logical functions behave a little differently
+ }
+ // this will usually cause a 'FALSE' result except for ISNONTEXT()
+ ve = e.getErrorEval();
+ }
+ if (ve instanceof RefEval) {
+ ve = xlateRefEval((RefEval) ve);
+ }
+ return BoolEval.valueOf(evaluate(ve));
+
+ }
+ protected abstract boolean evaluate(ValueEval arg);
+
+ public static final Function IsLogical = new LogicalFunction() {
+ protected boolean evaluate(ValueEval arg) {
+ return arg instanceof BoolEval;
+ }
+ };
+ public static final Function IsNonText = new LogicalFunction() {
+ protected boolean evaluate(ValueEval arg) {
+ return !(arg instanceof StringEval);
+ }
+ };
+ public static final Function IsNumber = new LogicalFunction() {
+ protected boolean evaluate(ValueEval arg) {
+ return arg instanceof NumberEval;
+ }
+ };
+ public static final Function IsText = new LogicalFunction() {
+ protected boolean evaluate(ValueEval arg) {
+ return arg instanceof StringEval;
+ }
+ };
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -41,7 +40,7 @@
*/
public final class Lookup implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
switch(args.length) {
case 3:
break;
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Match.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Match.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Match.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Match.java Mon Aug 17 20:04:45 2009
@@ -67,7 +67,7 @@
public final class Match implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
double match_type = 1; // default
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java Mon Aug 17 20:04:45 2009
@@ -74,7 +74,7 @@
}
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
double result;
try {
List<Double> temp = new ArrayList<Double>();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java Mon Aug 17 20:04:45 2009
@@ -83,7 +83,7 @@
private static final int DEFAULT_MAX_NUM_OPERANDS = 30;
- public final Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public final ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
double d;
try {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Na.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Na.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Na.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Na.java Mon Aug 17 20:04:45 2009
@@ -18,7 +18,7 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Implementation of Excel function NA()
@@ -27,7 +27,7 @@
*/
public final class Na implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
return ErrorEval.NA;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Not.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Not.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Not.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Not.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -33,7 +32,7 @@
*/
public final class Not implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if (args.length != 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java Mon Aug 17 20:04:45 2009
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula.functions;
-import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.ss.formula.eval.NotImplementedException;
/**
@@ -38,7 +38,7 @@
_functionName = name;
}
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
throw new NotImplementedException(_functionName);
}
public String getFunctionName() {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Now.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Now.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Now.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Now.java Mon Aug 17 20:04:45 2009
@@ -20,8 +20,8 @@
import java.util.Date;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
/**
@@ -31,7 +31,7 @@
*/
public final class Now implements Function {
- public Eval evaluate(Eval[] evals, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] evals, int srcCellRow, short srcCellCol) {
if (evals.length > 0) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java Mon Aug 17 20:04:45 2009
@@ -46,7 +46,7 @@
}
}
- public final Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public final ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
double result;
try {
result = eval(args, srcCellRow, srcCellCol);
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java Mon Aug 17 20:04:45 2009
@@ -164,7 +164,7 @@
}
}
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if(args.length < 3 || args.length > 5) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java Mon Aug 17 20:04:45 2009
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -30,7 +29,7 @@
private static final NumberEval PI_EVAL = new NumberEval(Math.PI);
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
ValueEval retval;
switch (operands.length) {
default:
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rand.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rand.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rand.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rand.java Mon Aug 17 20:04:45 2009
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -28,7 +27,7 @@
*/
public final class Rand implements Function {
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
ValueEval retval;
switch (operands.length) {
default:
Modified: 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/Row.java?rev=805119&r1=805118&r2=805119&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/Row.java Mon Aug 17 20:04:45 2009
@@ -19,14 +19,13 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
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 Function {
- public Eval evaluate(Eval[] evals, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] evals, int srcCellRow, short srcCellCol) {
ValueEval retval = null;
int rnum = -1;
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rows.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rows.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rows.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Rows.java Mon Aug 17 20:04:45 2009
@@ -22,6 +22,7 @@
import org.apache.poi.hssf.record.formula.eval.Eval;
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;
/**
* Implementation for Excel ROWS function.
@@ -30,7 +31,7 @@
*/
public final class Rows implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
switch(args.length) {
case 1:
// expected
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java Mon Aug 17 20:04:45 2009
@@ -41,7 +41,7 @@
*/
public final class Sumif implements Function {
- public Eval evaluate(Eval[] args, int srcRowIndex, short srcColumnIndex) {
+ public ValueEval evaluate(ValueEval[] args, int srcRowIndex, short srcColumnIndex) {
if (args.length < 2) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java Mon Aug 17 20:04:45 2009
@@ -20,7 +20,6 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
@@ -54,14 +53,14 @@
public final class Sumproduct implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
int maxN = args.length;
if(maxN < 1) {
return ErrorEval.VALUE_INVALID;
}
- Eval firstArg = args[0];
+ ValueEval firstArg = args[0];
try {
if(firstArg instanceof NumericValueEval) {
return evaluateSingleProduct(args);
@@ -83,7 +82,7 @@
+ firstArg.getClass().getName() + ")");
}
- private static Eval evaluateSingleProduct(Eval[] evalArgs) throws EvaluationException {
+ private static ValueEval evaluateSingleProduct(ValueEval[] evalArgs) throws EvaluationException {
int maxN = evalArgs.length;
double term = 1D;
@@ -94,9 +93,9 @@
return new NumberEval(term);
}
- private static double getScalarValue(Eval arg) throws EvaluationException {
+ private static double getScalarValue(ValueEval arg) throws EvaluationException {
- Eval eval;
+ ValueEval eval;
if (arg instanceof RefEval) {
RefEval re = (RefEval) arg;
eval = re.getInnerValueEval();
@@ -116,15 +115,10 @@
eval = ae.getRelativeValue(0, 0);
}
- if (!(eval instanceof ValueEval)) {
- throw new RuntimeException("Unexpected value eval class ("
- + eval.getClass().getName() + ")");
- }
-
- return getProductTerm((ValueEval) eval, true);
+ return getProductTerm(eval, true);
}
- private static Eval evaluateAreaSumProduct(Eval[] evalArgs) throws EvaluationException {
+ private static ValueEval evaluateAreaSumProduct(ValueEval[] evalArgs) throws EvaluationException {
int maxN = evalArgs.length;
AreaEval[] args = new AreaEval[maxN];
try {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/T.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/T.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/T.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/T.java Mon Aug 17 20:04:45 2009
@@ -18,20 +18,20 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.RefEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
public final class T implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
switch (args.length) {
default:
return ErrorEval.VALUE_INVALID;
case 1:
break;
}
- Eval arg = args[0];
+ ValueEval arg = args[0];
if (arg instanceof RefEval) {
RefEval re = (RefEval) arg;
arg = re.getInnerValueEval();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java Mon Aug 17 20:04:45 2009
@@ -43,7 +43,7 @@
return OperandResolver.coerceValueToInt(ve);
}
- public final Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public final ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
try {
return evaluateFunc(args, srcCellRow, srcCellCol);
} catch (EvaluationException e) {
Modified: 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/Time.java?rev=805119&r1=805118&r2=805119&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/Time.java Mon Aug 17 20:04:45 2009
@@ -38,7 +38,7 @@
private static final int SECONDS_PER_DAY = HOURS_PER_DAY * SECONDS_PER_HOUR;
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if (args.length != 3) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Today.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Today.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Today.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Today.java Mon Aug 17 20:04:45 2009
@@ -21,8 +21,8 @@
import java.util.GregorianCalendar;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
/**
@@ -32,7 +32,7 @@
*/
public final class Today implements Function {
- public Eval evaluate(Eval[] evals, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] evals, int srcCellRow, short srcCellCol) {
if (evals.length > 0) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/True.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/True.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/True.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/True.java Mon Aug 17 20:04:45 2009
@@ -19,7 +19,6 @@
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
@@ -28,7 +27,7 @@
*/
public final class True implements Function {
- public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
+ public ValueEval evaluate(ValueEval[] operands, int srcRow, short srcCol) {
ValueEval retval;
switch (operands.length) {
default:
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Value.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Value.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Value.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Value.java Mon Aug 17 20:04:45 2009
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula.functions;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.EvaluationException;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -42,7 +41,7 @@
private static final int MIN_DISTANCE_BETWEEN_THOUSANDS_SEPARATOR = 4;
private static final Double ZERO = new Double(0.0);
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if (args.length != 1) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java Mon Aug 17 20:04:45 2009
@@ -42,7 +42,7 @@
*/
public final class Vlookup implements Function {
- public Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
Eval arg3 = null;
switch(args.length) {
case 4:
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java Mon Aug 17 20:04:45 2009
@@ -97,7 +97,7 @@
*/
protected abstract Accumulator createAccumulator();
- public final Eval evaluate(Eval[] args, int srcCellRow, short srcCellCol) {
+ public final ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
if (args.length != 2) {
return ErrorEval.VALUE_INVALID;
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java Mon Aug 17 20:04:45 2009
@@ -22,7 +22,6 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
@@ -32,18 +31,18 @@
*/
public final class TestAverage extends TestCase {
- private static Eval invokeAverage(Eval[] args) {
+ private static ValueEval invokeAverage(ValueEval[] args) {
return AggregateFunction.AVERAGE.evaluate(args, -1, (short)-1);
}
- private void confirmAverage(Eval[] args, double expected) {
- Eval result = invokeAverage(args);
+ private void confirmAverage(ValueEval[] args, double expected) {
+ ValueEval result = invokeAverage(args);
assertEquals(NumberEval.class, result.getClass());
assertEquals(expected, ((NumberEval)result).getNumberValue(), 0);
}
- private void confirmAverage(Eval[] args, ErrorEval expectedError) {
- Eval result = invokeAverage(args);
+ private void confirmAverage(ValueEval[] args, ErrorEval expectedError) {
+ ValueEval result = invokeAverage(args);
assertEquals(ErrorEval.class, result.getClass());
assertEquals(expectedError.getErrorCode(), ((ErrorEval)result).getErrorCode());
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java Mon Aug 17 20:04:45 2009
@@ -101,7 +101,7 @@
ValueEval[] args = new ValueEval[] { arg0, MissingArgEval.instance, new NumberEval(2), };
ValueEval actualResult;
try {
- actualResult = (ValueEval) FUNC_INST.evaluate(args, 1, (short)1);
+ actualResult = FUNC_INST.evaluate(args, 1, (short)1);
} catch (RuntimeException e) {
if (e.getMessage().equals("Unexpected arg eval type (org.apache.poi.hssf.record.formula.eval.MissingArgEval")) {
throw new AssertionFailedError("Identified bug 47048b - INDEX() should support missing-arg");
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java Mon Aug 17 20:04:45 2009
@@ -22,45 +22,44 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Tests for Excel function LEN()
- *
+ *
* @author Josh Micich
*/
public final class TestLen extends TestCase {
-
- private static Eval invokeLen(Eval text) {
- Eval[] args = new Eval[] { text, };
+ private static ValueEval invokeLen(ValueEval text) {
+ ValueEval[] args = new ValueEval[] { text, };
return TextFunction.LEN.evaluate(args, -1, (short)-1);
}
- private void confirmLen(Eval text, int expected) {
- Eval result = invokeLen(text);
+ private void confirmLen(ValueEval text, int expected) {
+ ValueEval result = invokeLen(text);
assertEquals(NumberEval.class, result.getClass());
assertEquals(expected, ((NumberEval)result).getNumberValue(), 0);
}
- private void confirmLen(Eval text, ErrorEval expectedError) {
- Eval result = invokeLen(text);
+ private void confirmLen(ValueEval text, ErrorEval expectedError) {
+ ValueEval result = invokeLen(text);
assertEquals(ErrorEval.class, result.getClass());
assertEquals(expectedError.getErrorCode(), ((ErrorEval)result).getErrorCode());
}
-
+
public void testBasic() {
-
+
confirmLen(new StringEval("galactic"), 8);
}
-
+
/**
* Valid cases where text arg is not exactly a string
*/
public void testUnusualArgs() {
-
- // text (first) arg type is number, other args are strings with fractional digits
+
+ // text (first) arg type is number, other args are strings with fractional digits
confirmLen(new NumberEval(123456), 6);
confirmLen(BoolEval.FALSE, 5);
confirmLen(BoolEval.TRUE, 4);
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java Mon Aug 17 20:04:45 2009
@@ -22,7 +22,6 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
@@ -41,11 +40,11 @@
private static final NumberEval MATCH_SMALLEST_GTE = new NumberEval(-1);
- private static Eval invokeMatch(Eval lookup_value, Eval lookup_array, Eval match_type) {
- Eval[] args = { lookup_value, lookup_array, match_type, };
+ private static ValueEval invokeMatch(ValueEval lookup_value, ValueEval lookup_array, ValueEval match_type) {
+ ValueEval[] args = { lookup_value, lookup_array, match_type, };
return new Match().evaluate(args, -1, (short)-1);
}
- private static void confirmInt(int expected, Eval actualEval) {
+ private static void confirmInt(int expected, ValueEval actualEval) {
if(!(actualEval instanceof NumericValueEval)) {
fail("Expected numeric result");
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java Mon Aug 17 20:04:45 2009
@@ -23,7 +23,6 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
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.StringEval;
@@ -36,19 +35,19 @@
public final class TestMid extends TestCase {
- private static Eval invokeMid(Eval text, Eval startPos, Eval numChars) {
- Eval[] args = new Eval[] { text, startPos, numChars, };
+ private static ValueEval invokeMid(ValueEval text, ValueEval startPos, ValueEval numChars) {
+ ValueEval[] args = new ValueEval[] { text, startPos, numChars, };
return TextFunction.MID.evaluate(args, -1, (short)-1);
}
- private void confirmMid(Eval text, Eval startPos, Eval numChars, String expected) {
- Eval result = invokeMid(text, startPos, numChars);
+ private void confirmMid(ValueEval text, ValueEval startPos, ValueEval numChars, String expected) {
+ ValueEval result = invokeMid(text, startPos, numChars);
assertEquals(StringEval.class, result.getClass());
assertEquals(expected, ((StringEval)result).getStringValue());
}
- private void confirmMid(Eval text, Eval startPos, Eval numChars, ErrorEval expectedError) {
- Eval result = invokeMid(text, startPos, numChars);
+ private void confirmMid(ValueEval text, ValueEval startPos, ValueEval numChars, ErrorEval expectedError) {
+ ValueEval result = invokeMid(text, startPos, numChars);
assertEquals(ErrorEval.class, result.getClass());
assertEquals(expectedError.getErrorCode(), ((ErrorEval)result).getErrorCode());
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestNper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestNper.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestNper.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestNper.java Mon Aug 17 20:04:45 2009
@@ -19,8 +19,8 @@
import junit.framework.TestCase;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
@@ -29,18 +29,18 @@
/**
* Tests for {@link FinanceFunction#NPER}
- *
+ *
* @author Josh Micich
*/
public final class TestNper extends TestCase {
public void testSimpleEvaluate() {
- Eval[] args = {
+ ValueEval[] args = {
new NumberEval(0.05),
new NumberEval(250),
new NumberEval(-1000),
};
- Eval result = FinanceFunction.NPER.evaluate(args, 0, (short)0);
+ ValueEval result = FinanceFunction.NPER.evaluate(args, 0, (short)0);
assertEquals(NumberEval.class, result.getClass());
assertEquals(4.57353557, ((NumberEval)result).getNumberValue(), 0.00000001);
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java Mon Aug 17 20:04:45 2009
@@ -21,12 +21,11 @@
import junit.framework.TestCase;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
/**
- *
* @author Josh Micich
*/
public final class TestPmt extends TestCase {
@@ -35,14 +34,14 @@
// only asserting accuracy to 4 fractional digits
assertEquals(expected, ne.getNumberValue(), 0.00005);
}
- private static Eval invoke(Eval[] args) {
+ private static ValueEval invoke(ValueEval[] args) {
return FinanceFunction.PMT.evaluate(args, -1, (short)-1);
}
/**
* Invocation when not expecting an error result
*/
- private static NumberEval invokeNormal(Eval[] args) {
- Eval ev = invoke(args);
+ private static NumberEval invokeNormal(ValueEval[] args) {
+ ValueEval ev = invoke(args);
if(ev instanceof ErrorEval) {
throw new AssertionFailedError("Normal evaluation failed with error code: "
+ ev.toString());
@@ -51,7 +50,7 @@
}
private static void confirm(double expected, double rate, double nper, double pv, double fv, boolean isBeginning) {
- Eval[] args = {
+ ValueEval[] args = {
new NumberEval(rate),
new NumberEval(nper),
new NumberEval(pv),
@@ -68,20 +67,20 @@
}
public void test3args() {
-
- Eval[] args = {
+
+ ValueEval[] args = {
new NumberEval(0.005),
new NumberEval(24),
new NumberEval(1000),
};
- Eval ev = invoke(args);
+ ValueEval ev = invoke(args);
if(ev instanceof ErrorEval) {
ErrorEval err = (ErrorEval) ev;
if(err.getErrorCode() == HSSFErrorConstants.ERROR_VALUE) {
throw new AssertionFailedError("Identified bug 44691");
}
}
-
+
confirm(-44.3206, invokeNormal(args));
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java Mon Aug 17 20:04:45 2009
@@ -20,31 +20,31 @@
import junit.framework.TestCase;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
/**
* Test cases for ROUND(), ROUNDUP(), ROUNDDOWN()
- *
+ *
* @author Josh Micich
*/
public final class TestRoundFuncs extends TestCase {
private static final NumericFunction F = null;
public void testRounddownWithStringArg() {
-
- Eval strArg = new StringEval("abc");
- Eval[] args = { strArg, new NumberEval(2), };
- Eval result = F.ROUNDDOWN.evaluate(args, -1, (short)-1);
+
+ ValueEval strArg = new StringEval("abc");
+ ValueEval[] args = { strArg, new NumberEval(2), };
+ ValueEval result = F.ROUNDDOWN.evaluate(args, -1, (short)-1);
assertEquals(ErrorEval.VALUE_INVALID, result);
}
-
+
public void testRoundupWithStringArg() {
-
- Eval strArg = new StringEval("abc");
- Eval[] args = { strArg, new NumberEval(2), };
- Eval result = F.ROUNDUP.evaluate(args, -1, (short)-1);
+
+ ValueEval strArg = new StringEval("abc");
+ ValueEval[] args = { strArg, new NumberEval(2), };
+ ValueEval result = F.ROUNDUP.evaluate(args, -1, (short)-1);
assertEquals(ErrorEval.VALUE_INVALID, result);
}
-
+
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java Mon Aug 17 20:04:45 2009
@@ -21,7 +21,6 @@
import org.apache.poi.hssf.record.formula.eval.AreaEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
import org.apache.poi.hssf.record.formula.eval.RefEval;
@@ -29,16 +28,16 @@
/**
* Test cases for SUMPRODUCT()
- *
+ *
* @author Josh Micich
*/
public final class TestSumproduct extends TestCase {
-
- private static Eval invokeSumproduct(Eval[] args) {
+
+ private static ValueEval invokeSumproduct(ValueEval[] args) {
// srcCellRow and srcCellColumn are ignored by SUMPRODUCT
return new Sumproduct().evaluate(args, -1, (short)-1);
}
- private static void confirmDouble(double expected, Eval actualEval) {
+ private static void confirmDouble(double expected, ValueEval actualEval) {
if(!(actualEval instanceof NumericValueEval)) {
fail("Expected numeric result");
}
@@ -49,11 +48,11 @@
public void testScalarSimple() {
RefEval refEval = EvalFactory.createRefEval("A1", new NumberEval(3));
- Eval[] args = {
- refEval,
+ ValueEval[] args = {
+ refEval,
new NumberEval(2),
};
- Eval result = invokeSumproduct(args);
+ ValueEval result = invokeSumproduct(args);
confirmDouble(6D, result);
}
@@ -70,9 +69,9 @@
};
AreaEval aeA = EvalFactory.createAreaEval("A1:A3", aValues);
AreaEval aeB = EvalFactory.createAreaEval("B1:B3", bValues);
-
- Eval[] args = { aeA, aeB, };
- Eval result = invokeSumproduct(args);
+
+ ValueEval[] args = { aeA, aeB, };
+ ValueEval result = invokeSumproduct(args);
confirmDouble(65D, result);
}
@@ -83,27 +82,27 @@
AreaEval ae = EvalFactory.createAreaEval("A1:A1", new ValueEval[] { new NumberEval(7), });
- Eval[] args = {
- ae,
+ ValueEval[] args = {
+ ae,
new NumberEval(2),
};
- Eval result = invokeSumproduct(args);
+ ValueEval result = invokeSumproduct(args);
confirmDouble(14D, result);
}
public void testMismatchAreaDimensions() {
-
+
AreaEval aeA = EvalFactory.createAreaEval("A1:A3", new ValueEval[3]);
AreaEval aeB = EvalFactory.createAreaEval("B1:D1", new ValueEval[3]);
- Eval[] args;
- args = new Eval[] { aeA, aeB, };
+ ValueEval[] args;
+ args = new ValueEval[] { aeA, aeB, };
assertEquals(ErrorEval.VALUE_INVALID, invokeSumproduct(args));
- args = new Eval[] { aeA, new NumberEval(5), };
+ args = new ValueEval[] { aeA, new NumberEval(5), };
assertEquals(ErrorEval.VALUE_INVALID, invokeSumproduct(args));
}
-
+
public void testAreaWithErrorCell() {
ValueEval[] aValues = {
ErrorEval.REF_INVALID,
@@ -112,7 +111,7 @@
AreaEval aeA = EvalFactory.createAreaEval("A1:A2", aValues);
AreaEval aeB = EvalFactory.createAreaEval("B1:B2", new ValueEval[2]);
- Eval[] args = { aeA, aeB, };
+ ValueEval[] args = { aeA, aeB, };
assertEquals(ErrorEval.REF_INVALID, invokeSumproduct(args));
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java Mon Aug 17 20:04:45 2009
@@ -22,14 +22,13 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Test cases for Excel function T()
- *
+ *
* @author Josh Micich
*/
public final class TestTFunc extends TestCase {
@@ -37,9 +36,9 @@
/**
* @return the result of calling function T() with the specified argument
*/
- private static Eval invokeT(Eval arg) {
- Eval[] args = { arg, };
- Eval result = new T().evaluate(args, -1, (short)-1);
+ private static ValueEval invokeT(ValueEval arg) {
+ ValueEval[] args = { arg, };
+ ValueEval result = new T().evaluate(args, -1, (short)-1);
assertNotNull("result may never be null", result);
return result;
}
@@ -47,20 +46,20 @@
* Simulates call: T(A1)
* where cell A1 has the specified innerValue
*/
- private Eval invokeTWithReference(ValueEval innerValue) {
- Eval arg = EvalFactory.createRefEval("$B$2", innerValue);
+ private ValueEval invokeTWithReference(ValueEval innerValue) {
+ ValueEval arg = EvalFactory.createRefEval("$B$2", innerValue);
return invokeT(arg);
}
-
+
private static void confirmText(String text) {
- Eval arg = new StringEval(text);
- Eval eval = invokeT(arg);
+ ValueEval arg = new StringEval(text);
+ ValueEval eval = invokeT(arg);
StringEval se = (StringEval) eval;
assertEquals(text, se.getStringValue());
}
-
+
public void testTextValues() {
-
+
confirmText("abc");
confirmText("");
confirmText(" ");
@@ -68,26 +67,26 @@
confirmText("123");
confirmText("TRUE");
}
-
- private static void confirmError(Eval arg) {
- Eval eval = invokeT(arg);
+
+ private static void confirmError(ValueEval arg) {
+ ValueEval eval = invokeT(arg);
assertTrue(arg == eval);
}
public void testErrorValues() {
-
+
confirmError(ErrorEval.VALUE_INVALID);
confirmError(ErrorEval.NA);
confirmError(ErrorEval.REF_INVALID);
}
-
- private static void confirmString(Eval eval, String expected) {
+
+ private static void confirmString(ValueEval eval, String expected) {
assertTrue(eval instanceof StringEval);
assertEquals(expected, ((StringEval)eval).getStringValue());
}
- private static void confirmOther(Eval arg) {
- Eval eval = invokeT(arg);
+ private static void confirmOther(ValueEval arg) {
+ ValueEval eval = invokeT(arg);
confirmString(eval, "");
}
@@ -98,8 +97,8 @@
}
public void testRefValues() {
- Eval eval;
-
+ ValueEval eval;
+
eval = invokeTWithReference(new StringEval("def"));
confirmString(eval, "def");
eval = invokeTWithReference(new StringEval(" "));
@@ -109,7 +108,7 @@
confirmString(eval, "");
eval = invokeTWithReference(BoolEval.TRUE);
confirmString(eval, "");
-
+
eval = invokeTWithReference(ErrorEval.NAME_INVALID);
assertTrue(eval == ErrorEval.NAME_INVALID);
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java?rev=805119&r1=805118&r2=805119&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java Mon Aug 17 20:04:45 2009
@@ -22,36 +22,36 @@
import org.apache.poi.hssf.record.formula.eval.BlankEval;
import org.apache.poi.hssf.record.formula.eval.BoolEval;
import org.apache.poi.hssf.record.formula.eval.ErrorEval;
-import org.apache.poi.hssf.record.formula.eval.Eval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Tests for Excel function TRIM()
- *
+ *
* @author Josh Micich
*/
public final class TestTrim extends TestCase {
-
- private static Eval invokeTrim(Eval text) {
- Eval[] args = new Eval[] { text, };
+
+ private static ValueEval invokeTrim(ValueEval text) {
+ ValueEval[] args = new ValueEval[] { text, };
return TextFunction.TRIM.evaluate(args, -1, (short)-1);
}
- private void confirmTrim(Eval text, String expected) {
- Eval result = invokeTrim(text);
+ private void confirmTrim(ValueEval text, String expected) {
+ ValueEval result = invokeTrim(text);
assertEquals(StringEval.class, result.getClass());
assertEquals(expected, ((StringEval)result).getStringValue());
}
- private void confirmTrim(Eval text, ErrorEval expectedError) {
- Eval result = invokeTrim(text);
+ private void confirmTrim(ValueEval text, ErrorEval expectedError) {
+ ValueEval result = invokeTrim(text);
assertEquals(ErrorEval.class, result.getClass());
assertEquals(expectedError.getErrorCode(), ((ErrorEval)result).getErrorCode());
}
-
+
public void testBasic() {
-
+
confirmTrim(new StringEval(" hi "), "hi");
confirmTrim(new StringEval("hi "), "hi");
confirmTrim(new StringEval(" hi"), "hi");
@@ -59,13 +59,13 @@
confirmTrim(new StringEval(""), "");
confirmTrim(new StringEval(" "), "");
}
-
+
/**
* Valid cases where text arg is not exactly a string
*/
public void testUnusualArgs() {
-
- // text (first) arg type is number, other args are strings with fractional digits
+
+ // text (first) arg type is number, other args are strings with fractional digits
confirmTrim(new NumberEval(123456), "123456");
confirmTrim(BoolEval.FALSE, "FALSE");
confirmTrim(BoolEval.TRUE, "TRUE");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org