]> source.dussan.org Git - poi.git/commitdiff
Removed obsolete Eval interface
authorJosh Micich <josh@apache.org>
Mon, 17 Aug 2009 22:34:22 +0000 (22:34 +0000)
committerJosh Micich <josh@apache.org>
Mon, 17 Aug 2009 22:34:22 +0000 (22:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@805192 13f79535-47bb-0310-9956-ffa450edef68

35 files changed:
src/java/org/apache/poi/hssf/record/formula/atp/ParityFunction.java
src/java/org/apache/poi/hssf/record/formula/atp/YearFrac.java
src/java/org/apache/poi/hssf/record/formula/eval/Eval.java [deleted file]
src/java/org/apache/poi/hssf/record/formula/eval/OperandResolver.java
src/java/org/apache/poi/hssf/record/formula/eval/RangeEval.java
src/java/org/apache/poi/hssf/record/formula/eval/TwoOperandNumericOperation.java
src/java/org/apache/poi/hssf/record/formula/eval/UserDefinedFunction.java
src/java/org/apache/poi/hssf/record/formula/eval/ValueEval.java
src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
src/java/org/apache/poi/hssf/record/formula/functions/Columns.java
src/java/org/apache/poi/hssf/record/formula/functions/Count.java
src/java/org/apache/poi/hssf/record/formula/functions/CountUtils.java
src/java/org/apache/poi/hssf/record/formula/functions/Counta.java
src/java/org/apache/poi/hssf/record/formula/functions/Countif.java
src/java/org/apache/poi/hssf/record/formula/functions/Find.java
src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java
src/java/org/apache/poi/hssf/record/formula/functions/Index.java
src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java
src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java
src/java/org/apache/poi/hssf/record/formula/functions/Isref.java
src/java/org/apache/poi/hssf/record/formula/functions/LookupUtils.java
src/java/org/apache/poi/hssf/record/formula/functions/Match.java
src/java/org/apache/poi/hssf/record/formula/functions/Mode.java
src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
src/java/org/apache/poi/hssf/record/formula/functions/Offset.java
src/java/org/apache/poi/hssf/record/formula/functions/Replace.java
src/java/org/apache/poi/hssf/record/formula/functions/Rows.java
src/java/org/apache/poi/hssf/record/formula/functions/Substitute.java
src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java
src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java
src/java/org/apache/poi/hssf/record/formula/functions/Time.java
src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java
src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
src/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java

index 04ba61e120e878bb90c0424fa4169032272498ef..602710e98468095c59d4296ee3fd91940d48fd9c 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.poi.hssf.record.formula.atp;
 
 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;
 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;
@@ -56,7 +56,7 @@ final class ParityFunction implements FreeRefFunction {
                return BoolEval.valueOf(val == _desiredParity);
        }
 
-       private static int evaluateArgParity(Eval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
+       private static int evaluateArgParity(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, (short)srcCellCol);
 
                double d = OperandResolver.coerceValueToDouble(ve);
index ea2dc380157fa4213f66df1bad5d97d732e0f3c3..baab17991a48d2e36ec7362ba0523521ca250d28 100644 (file)
@@ -22,7 +22,7 @@ import java.util.GregorianCalendar;
 import java.util.regex.Pattern;
 
 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.EvaluationException;
 import org.apache.poi.hssf.record.formula.eval.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -83,7 +83,7 @@ final class YearFrac implements FreeRefFunction {
                return new NumberEval(result);
        }
 
-       private static double evaluateDateArg(Eval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
+       private static double evaluateDateArg(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, (short) srcCellCol);
 
                if (ve instanceof StringEval) {
@@ -153,7 +153,7 @@ final class YearFrac implements FreeRefFunction {
                return cal;
        }
 
-       private static int evaluateIntArg(Eval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
+       private static int evaluateIntArg(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, (short) srcCellCol);
                return OperandResolver.coerceValueToInt(ve);
        }
diff --git a/src/java/org/apache/poi/hssf/record/formula/eval/Eval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Eval.java
deleted file mode 100644 (file)
index 1cf9047..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-/*
- * Created on May 8, 2005
- *
- */
-package org.apache.poi.hssf.record.formula.eval;
-
-/**
- * @author Amol S. Deshmukh &lt; amolweb at ya hoo dot com &gt;
- *  
- */
-public interface Eval {
-       // TODO - remove this interface
-}
index 675aad4384c902ca52559ea2f4087dd8eeed01c9..29f7a4dc2d98ea8b9d1445a1343dfc628cd125c9 100755 (executable)
@@ -19,7 +19,7 @@ package org.apache.poi.hssf.record.formula.eval;
 
 /**
  * Provides functionality for evaluating arguments to functions and operators.
- * 
+ *
  * @author Josh Micich
  */
 public final class OperandResolver {
@@ -37,12 +37,12 @@ public final class OperandResolver {
         * @return a <tt>NumberEval</tt>, <tt>StringEval</tt>, <tt>BoolEval</tt> or <tt>BlankEval</tt>.
         * Never <code>null</code> or <tt>ErrorEval</tt>.
         * @throws EvaluationException(#VALUE!) if srcCellRow or srcCellCol do not properly index into
-        *  an AreaEval.  If the actual value retrieved is an ErrorEval, a corresponding 
+        *  an AreaEval.  If the actual value retrieved is an ErrorEval, a corresponding
         *  EvaluationException is thrown.
         */
-       public static ValueEval getSingleValue(Eval arg, int srcCellRow, short srcCellCol)
+       public static ValueEval getSingleValue(ValueEval arg, int srcCellRow, short srcCellCol)
                        throws EvaluationException {
-               Eval result;
+               ValueEval result;
                if (arg instanceof RefEval) {
                        result = ((RefEval) arg).getInnerValueEval();
                } else if (arg instanceof AreaEval) {
@@ -63,7 +63,7 @@ public final class OperandResolver {
         * Implements (some perhaps not well known) Excel functionality to select a single cell from an
         * area depending on the coordinates of the calling cell.  Here is an example demonstrating
         * both selection from a single row area and a single column area in the same formula.
-        * 
+        *
         *    <table border="1" cellpadding="1" cellspacing="1" summary="sample spreadsheet">
         *      <tr><th>&nbsp;</th><th>&nbsp;A&nbsp;</th><th>&nbsp;B&nbsp;</th><th>&nbsp;C&nbsp;</th><th>&nbsp;D&nbsp;</th></tr>
         *      <tr><th>1</th><td>15</td><td>20</td><td>25</td><td>&nbsp;</td></tr>
@@ -71,10 +71,10 @@ public final class OperandResolver {
         *      <tr><th>3</th><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>300</td></tr>
         *      <tr><th>3</th><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>400</td></tr>
         *    </table>
-        * 
+        *
         * If the formula "=1000+A1:B1+D2:D3" is put into the 9 cells from A2 to C4, the spreadsheet
         * will look like this:
-        * 
+        *
         *    <table border="1" cellpadding="1" cellspacing="1" summary="sample spreadsheet">
         *      <tr><th>&nbsp;</th><th>&nbsp;A&nbsp;</th><th>&nbsp;B&nbsp;</th><th>&nbsp;C&nbsp;</th><th>&nbsp;D&nbsp;</th></tr>
         *      <tr><th>1</th><td>15</td><td>20</td><td>25</td><td>&nbsp;</td></tr>
@@ -82,28 +82,28 @@ public final class OperandResolver {
         *      <tr><th>3</th><td>1315</td><td>1320</td><td>#VALUE!</td><td>300</td></tr>
         *      <tr><th>4</th><td>#VALUE!</td><td>#VALUE!</td><td>#VALUE!</td><td>400</td></tr>
         *    </table>
-        * 
-        * Note that the row area (A1:B1) does not include column C and the column area (D2:D3) does 
+        *
+        * Note that the row area (A1:B1) does not include column C and the column area (D2:D3) does
         * not include row 4, so the values in C1(=25) and D4(=400) are not accessible to the formula
         * as written, but in the 4 cells A2:B3, the row and column selection works ok.<p/>
-        * 
-        * The same concept is extended to references across sheets, such that even multi-row, 
+        *
+        * The same concept is extended to references across sheets, such that even multi-row,
         * multi-column areas can be useful.<p/>
-        * 
+        *
         * Of course with carefully (or carelessly) chosen parameters, cyclic references can occur and
-        * hence this method <b>can</b> throw a 'circular reference' EvaluationException.  Note that 
+        * hence this method <b>can</b> throw a 'circular reference' EvaluationException.  Note that
         * this method does not attempt to detect cycles.  Every cell in the specified Area <tt>ae</tt>
-        * has already been evaluated prior to this method call.  Any cell (or cell<b>s</b>) part of 
-        * <tt>ae</tt> that would incur a cyclic reference error if selected by this method, will 
+        * has already been evaluated prior to this method call.  Any cell (or cell<b>s</b>) part of
+        * <tt>ae</tt> that would incur a cyclic reference error if selected by this method, will
         * already have the value <t>ErrorEval.CIRCULAR_REF_ERROR</tt> upon entry to this method.  It
         * is assumed logic exists elsewhere to produce this behaviour.
-        * 
+        *
         * @return whatever the selected cell's evaluated value is.  Never <code>null</code>. Never
         *  <tt>ErrorEval</tt>.
         * @throws EvaluationException if there is a problem with indexing into the area, or if the
         *  evaluated cell has an error.
         */
-       public static ValueEval chooseSingleElementFromArea(AreaEval ae, 
+       public static ValueEval chooseSingleElementFromArea(AreaEval ae,
                        int srcCellRow, short srcCellCol) throws EvaluationException {
                ValueEval result = chooseSingleElementFromAreaInternal(ae, srcCellRow, srcCellCol);
                if(result == null) {
@@ -119,9 +119,9 @@ public final class OperandResolver {
        }
 
        /**
-        * @return possibly  <tt>ErrorEval</tt>, and <code>null</code> 
+        * @return possibly <tt>ErrorEval</tt>, and <code>null</code>
         */
-       private static ValueEval chooseSingleElementFromAreaInternal(AreaEval ae, 
+       private static ValueEval chooseSingleElementFromAreaInternal(AreaEval ae,
                        int srcCellRow, short srcCellCol) throws EvaluationException {
 
                if(false) {
@@ -140,10 +140,10 @@ public final class OperandResolver {
 
                Another reason there's little value in attempting to detect circular references here is
                that only direct circular references could be detected.  If the cycle involved two or more
-               cells this method could not detect it.  
+               cells this method could not detect it.
 
                Logic to detect evaluation cycles of all kinds has been coded in EvaluationCycleDetector
-               (and HSSFFormulaEvaluator). 
+               (and HSSFFormulaEvaluator).
                 */
                }
 
@@ -172,14 +172,14 @@ public final class OperandResolver {
        /**
         * Applies some conversion rules if the supplied value is not already an integer.<br/>
         * Value is first coerced to a <tt>double</tt> ( See <tt>coerceValueToDouble()</tt> ).
-        * Note - <tt>BlankEval</tt> is converted to <code>0</code>.<p/> 
-        * 
+        * Note - <tt>BlankEval</tt> is converted to <code>0</code>.<p/>
+        *
         * Excel typically converts doubles to integers by truncating toward negative infinity.<br/>
         * The equivalent java code is:<br/>
         * &nbsp;&nbsp;<code>return (int)Math.floor(d);</code><br/>
         * <b>not</b>:<br/>
-        * &nbsp;&nbsp;<code>return (int)d; // wrong - rounds toward zero</code> 
-        * 
+        * &nbsp;&nbsp;<code>return (int)d; // wrong - rounds toward zero</code>
+        *
         */
        public static int coerceValueToInt(ValueEval ev) throws EvaluationException {
                if (ev == BlankEval.INSTANCE) {
@@ -193,13 +193,13 @@ public final class OperandResolver {
 
        /**
         * Applies some conversion rules if the supplied value is not already a number.
-        * Note - <tt>BlankEval</tt> is converted to {@link NumberEval#ZERO}. 
-        * @param ev must be a {@link NumberEval}, {@link StringEval}, {@link BoolEval} or 
+        * Note - <tt>BlankEval</tt> is converted to {@link NumberEval#ZERO}.
+        * @param ev must be a {@link NumberEval}, {@link StringEval}, {@link BoolEval} or
         * {@link BlankEval}
         * @return actual, parsed or interpreted double value (respectively).
         * @throws EvaluationException(#VALUE!) only if a StringEval is supplied and cannot be parsed
         * as a double (See <tt>parseDouble()</tt> for allowable formats).
-        * @throws RuntimeException if the supplied parameter is not {@link NumberEval}, 
+        * @throws RuntimeException if the supplied parameter is not {@link NumberEval},
         * {@link StringEval}, {@link BoolEval} or {@link BlankEval}
         */
        public static double coerceValueToDouble(ValueEval ev) throws EvaluationException {
@@ -224,8 +224,8 @@ public final class OperandResolver {
        /**
         * Converts a string to a double using standard rules that Excel would use.<br/>
         * Tolerates currency prefixes, commas, leading and trailing spaces.<p/>
-        *   
-        *  Some examples:<br/> 
+        *
+        *  Some examples:<br/>
         *  " 123 " -&gt; 123.0<br/>
         *  ".123" -&gt; 0.123<br/>
         *  These not supported yet:<br/>
@@ -233,8 +233,7 @@ public final class OperandResolver {
         *  "$1.25E4" -&gt; 12500.0<br/>
         *  "5**2" -&gt; 500<br/>
         *  "250%" -&gt; 2.5<br/>
-        *  
-        * @param pText
+        *
         * @return <code>null</code> if the specified text cannot be parsed as a number
         */
        public static Double parseDouble(String pText) {
index cf3ed58477cd3336ed89763624a64f4fc8585f13..8db93bb3ea131c0f87f67a08a67be4874ab7afd3 100644 (file)
@@ -60,7 +60,7 @@ public final class RangeEval implements OperationEval {
                return aeA.offset(top-aeAfr, bottom-aeAfr, left-aeAfc, right-aeAfc);
        }
 
-       private static AreaEval evaluateRef(Eval arg) throws EvaluationException {
+       private static AreaEval evaluateRef(ValueEval arg) throws EvaluationException {
                if (arg instanceof AreaEval) {
                        return (AreaEval) arg;
                }
index f8ff34ab00f088672e7924d93f1fd4ae39b682e3..17587e838ebaa6bf602d2f86c62ff23176e5892b 100644 (file)
@@ -22,7 +22,7 @@ package org.apache.poi.hssf.record.formula.eval;
  */
 abstract class TwoOperandNumericOperation implements OperationEval {
 
-       protected final double singleOperandEvaluate(Eval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
+       protected final double singleOperandEvaluate(ValueEval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
                return OperandResolver.coerceValueToDouble(ve);
        }
index 65252d08d459b08895f92f1663108654da4af842..384b576eeca75164e46a9a8870bf7692c16496a5 100755 (executable)
@@ -44,7 +44,7 @@ final class UserDefinedFunction implements FreeRefFunction {
                        throw new RuntimeException("function name argument missing");
                }
 
-               Eval nameArg = args[0];
+               ValueEval nameArg = args[0];
                FreeRefFunction targetFunc;
                if (nameArg instanceof NameEval) {
                        targetFunc = findInternalUserDefinedFunction((NameEval) nameArg);
index 4581fa4d6eb162c77d23671b58013c03f9cd4e16..9b6bbae6d84cf5773e9966b32c4f2bb09831c4f0 100644 (file)
@@ -1,29 +1,25 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-/*
- * Created on May 8, 2005
- *
- */
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
 package org.apache.poi.hssf.record.formula.eval;
 
 /**
  * @author Amol S. Deshmukh &lt; amolweb at ya hoo dot com &gt;
- *  
  */
-public interface ValueEval extends Eval {
-
+public interface ValueEval {
+       // no methods
 }
index 76be216f2f4f8aba7639d00e1d52bf4e698083c0..ac5fea80c22932df3be04e24b4a3c9a22c81bdb8 100644 (file)
@@ -20,11 +20,10 @@ package org.apache.poi.hssf.record.formula.functions;
 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.ValueEval;
 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.RefEval;
-import org.apache.poi.hssf.record.formula.eval.ValueEval;
 
 /**
  * Here are the general rules concerning Boolean functions:
@@ -52,7 +51,7 @@ public abstract class BooleanFunction implements Function {
                return BoolEval.valueOf(boolResult);
        }
 
-       private boolean calculate(Eval[] args) throws EvaluationException {
+       private boolean calculate(ValueEval[] args) throws EvaluationException {
 
                boolean result = getInitialResultValue();
                boolean atleastOneNonBlank = false;
@@ -61,7 +60,7 @@ public abstract class BooleanFunction implements Function {
                 * Note: no short-circuit boolean loop exit because any ErrorEvals will override the result
                 */
                for (int i=0, iSize=args.length; i<iSize; i++) {
-                       Eval arg = args[i];
+                       ValueEval arg = args[i];
                        if (arg instanceof AreaEval) {
                                AreaEval ae = (AreaEval) arg;
                                int height = ae.getHeight();
@@ -82,11 +81,8 @@ public abstract class BooleanFunction implements Function {
                        if (arg instanceof RefEval) {
                                ValueEval ve = ((RefEval) arg).getInnerValueEval();
                                tempVe = OperandResolver.coerceValueToBoolean(ve, true);
-                       } else if (arg instanceof ValueEval) {
-                               ValueEval ve = (ValueEval) arg;
-                               tempVe = OperandResolver.coerceValueToBoolean(ve, false);
                        } else {
-                               throw new RuntimeException("Unexpected eval (" + arg.getClass().getName() + ")");
+                               tempVe = OperandResolver.coerceValueToBoolean(arg, false);
                        }
 
 
index 2871c63410a0ccb8c645d1eac045afb29a916f7d..65050fe5000a913224eda600208189e42d6f3505 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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;
@@ -43,7 +42,7 @@ public final class Columns implements Function {
                                // too many arguments
                                return ErrorEval.VALUE_INVALID;
                }
-               Eval firstArg = args[0];
+               ValueEval firstArg = args[0];
 
                int result;
                if (firstArg instanceof AreaEval) {
index 827fc0449fc803f886a25a8ea3299af45b917b38..dbb0987fbd434f621d66d2b91ff0fa1d680f6ad5 100644 (file)
@@ -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.MissingArgEval;
 import org.apache.poi.hssf.record.formula.eval.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -60,7 +59,7 @@ public final class Count implements Function {
 
        private static final I_MatchPredicate predicate = new I_MatchPredicate() {
 
-               public boolean matches(Eval valueEval) {
+               public boolean matches(ValueEval valueEval) {
 
                        if(valueEval instanceof NumberEval) {
                                // only numbers are counted
index 332f7475d1bd11820cbb96ff50bf2ac8663a5dfc..5dbda15dfb7c4a8b592b3da2df72db156e9333ad 100644 (file)
@@ -18,7 +18,6 @@
 package org.apache.poi.hssf.record.formula.functions;
 
 import org.apache.poi.hssf.record.formula.eval.AreaEval;
-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;
 
@@ -37,7 +36,7 @@ final class CountUtils {
         * Common interface for the matching criteria.
         */
        public interface I_MatchPredicate {
-               boolean matches(Eval x);
+               boolean matches(ValueEval x);
        }
        /**
         * @return the number of evaluated cells in the range that match the specified criteria
@@ -66,7 +65,7 @@ final class CountUtils {
                }
                return 0;
        }
-       public static int countArg(Eval eval, I_MatchPredicate criteriaPredicate) {
+       public static int countArg(ValueEval eval, I_MatchPredicate criteriaPredicate) {
                if (eval == null) {
                        throw new IllegalArgumentException("eval must not be null");
                }
index 609301db6d9a33ae3fe89e322bb042d2a7826004..b60366ae8b1b671534181b34e386c17b2663fcdf 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
 import org.apache.poi.hssf.record.formula.functions.CountUtils.I_MatchPredicate;
@@ -58,7 +57,7 @@ public final class Counta implements Function {
 
        private static final I_MatchPredicate predicate = new I_MatchPredicate() {
 
-               public boolean matches(Eval valueEval) {
+               public boolean matches(ValueEval valueEval) {
                        // Note - observed behavior of Excel:
                        // Error values like #VALUE!, #REF!, #DIV/0!, #NAME? etc don't cause this COUNTA to return an error
                        // in fact, they seem to get counted
index e1de081d8b8ff6ec83f61adfa3518d09c48d0f78..f92bc1d1d8b2ab885805758e6b780be2a68e81c8 100644 (file)
@@ -23,7 +23,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.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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -190,7 +189,7 @@ public final class Countif implements Function {
                        return String.valueOf(_value);
                }
 
-               public boolean matches(Eval x) {
+               public boolean matches(ValueEval x) {
                        double testValue;
                        if(x instanceof StringEval) {
                                // if the target(x) is a string, but parses as a number
@@ -241,7 +240,7 @@ public final class Countif implements Function {
                        return value ? 1 : 0;
                }
 
-               public boolean matches(Eval x) {
+               public boolean matches(ValueEval x) {
                        int testValue;
                        if(x instanceof StringEval) {
                                if (true) { // change to false to observe more intuitive behaviour
@@ -278,7 +277,7 @@ public final class Countif implements Function {
                        return ErrorConstants.getText(_value);
                }
 
-               public boolean matches(Eval x) {
+               public boolean matches(ValueEval x) {
                        if(x instanceof ErrorEval) {
                                int testValue = ((ErrorEval)x).getErrorCode();
                                return evaluate(testValue - _value);
@@ -313,7 +312,7 @@ public final class Countif implements Function {
                        return _pattern.pattern();
                }
 
-               public boolean matches(Eval x) {
+               public boolean matches(ValueEval x) {
                        if (x instanceof BlankEval) {
                                switch(getCode()) {
                                        case CmpOp.NONE:
@@ -423,7 +422,7 @@ public final class Countif implements Function {
        /**
         * @return the number of evaluated cells in the range that match the specified criteria
         */
-       private double countMatchingCellsInArea(Eval rangeArg, I_MatchPredicate criteriaPredicate) {
+       private double countMatchingCellsInArea(ValueEval rangeArg, I_MatchPredicate criteriaPredicate) {
 
                if (rangeArg instanceof RefEval) {
                        return CountUtils.countMatchingCell((RefEval) rangeArg, criteriaPredicate);
@@ -438,9 +437,9 @@ public final class Countif implements Function {
         * Creates a criteria predicate object for the supplied criteria arg
         * @return <code>null</code> if the arg evaluates to blank.
         */
-       /* package */ static I_MatchPredicate createCriteriaPredicate(Eval arg, int srcRowIndex, int srcColumnIndex) {
+       /* package */ static I_MatchPredicate createCriteriaPredicate(ValueEval arg, int srcRowIndex, int srcColumnIndex) {
 
-               Eval evaluatedCriteriaArg = evaluateCriteriaArg(arg, srcRowIndex, srcColumnIndex);
+               ValueEval evaluatedCriteriaArg = evaluateCriteriaArg(arg, srcRowIndex, srcColumnIndex);
 
                if(evaluatedCriteriaArg instanceof NumberEval) {
                        return new NumberMatcher(((NumberEval)evaluatedCriteriaArg).getNumberValue(), CmpOp.OP_NONE);
@@ -466,7 +465,7 @@ public final class Countif implements Function {
         *
         * @return the de-referenced criteria arg (possibly {@link ErrorEval})
         */
-       private static Eval evaluateCriteriaArg(Eval arg, int srcRowIndex, int srcColumnIndex) {
+       private static ValueEval evaluateCriteriaArg(ValueEval arg, int srcRowIndex, int srcColumnIndex) {
                try {
                        return OperandResolver.getSingleValue(arg, srcRowIndex, (short)srcColumnIndex);
                } catch (EvaluationException e) {
index 802b8161f535e83f2512ee8568cb4a7c817fde1a..0e9e81b08e1f18b860b9313a8777d1923f733e7d 100644 (file)
 
 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.ErrorEval;
-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.EvaluationException;
+import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
 
 /**
  * Implementation of the FIND() function.<p/>
@@ -37,7 +36,7 @@ import org.apache.poi.hssf.record.formula.eval.EvaluationException;
  */
 public final class Find extends TextFunction {
 
-       protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+       protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                        throws EvaluationException {
 
                int nArgs = args.length;
index 35a0b3ae340ee7d42678a30c6ee4332421ab8248..7d6bec148904e7cd7fb44adb531a6e7a426be69c 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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;
@@ -43,7 +42,7 @@ import org.apache.poi.hssf.record.formula.functions.LookupUtils.ValueVector;
 public final class Hlookup implements Function {
 
        public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
-               Eval arg3 = null;
+               ValueEval arg3 = null;
                switch(args.length) {
                        case 4:
                                arg3 = args[3]; // important: assumed array element is never null
index acdd6adde85b5a7a46e0d551d6f7348c2bc07338..261fc92a871de117d3a9f232f2ff6b0f5bed1078 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record.formula.functions;
 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.MissingArgEval;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -53,7 +52,7 @@ public final class Index implements Function {
                        // too few arguments
                        return ErrorEval.VALUE_INVALID;
                }
-               Eval firstArg = args[0];
+               ValueEval firstArg = args[0];
                if (firstArg instanceof RefEval) {
                        // convert to area ref for simpler code in getValueFromArea()
                        firstArg = ((RefEval)firstArg).offset(0, 0, 0, 0);
@@ -180,7 +179,7 @@ public final class Index implements Function {
         * @return the resolved 1-based index. Zero if the arg was missing or blank
         * @throws EvaluationException if the arg is an error value evaluates to a negative numeric value
         */
-       private static int resolveIndexArg(Eval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
+       private static int resolveIndexArg(ValueEval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
 
                ValueEval ev = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
                if (ev == MissingArgEval.instance) {
index d8f9ac9ecb405f84eee21aabfd3150b0d960ad81..a170405fe753609c92b1f43d36f3a5cab3f91b13 100644 (file)
@@ -19,7 +19,6 @@ 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.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;
@@ -43,7 +42,7 @@ public final class IsNa implements Function {
                if(args.length != 1) {
                        return ErrorEval.VALUE_INVALID;
                }
-               Eval arg = args[0];
+               ValueEval arg = args[0];
 
                try {
                        OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
index 51e8ee441f467c7b5f0deb5364e3f6e9fd4c38d8..5b9f6f51c4c621153214766a9cd3e8dc3a114b0c 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record.formula.functions;
 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.EvaluationException;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -35,7 +34,7 @@ public final class Isblank implements Function {
                if(args.length != 1) {
                        return ErrorEval.VALUE_INVALID;
                }
-               Eval arg = args[0];
+               ValueEval arg = args[0];
 
                ValueEval singleCellValue;
                try {
index f5d8ac7e384e6cdffc20a30d76e80fb2a6fa0e93..87af93f8fe70df6df8a3c9d22cfc326561022d60 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record.formula.functions;
 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;
 
@@ -33,7 +32,7 @@ public final class Isref implements Function {
                        return ErrorEval.VALUE_INVALID;
                }
 
-               Eval eval = operands[0];
+               ValueEval eval = operands[0];
                if (eval instanceof RefEval || eval instanceof AreaEval) {
                        return BoolEval.TRUE;
                }
index 376d9a4e0afba9fd52a24a4192a1951c0cf1acb0..c551235c452d4fd5df268e562d04036b2f9a6d6c 100644 (file)
@@ -21,7 +21,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.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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
@@ -323,7 +322,7 @@ final class LookupUtils {
         * @return column or row index as a zero-based value, never negative.
         * @throws EvaluationException when the specified arg cannot be coerced to a non-negative integer
         */
-       public static int resolveRowOrColIndexArg(Eval rowColIndexArg, int srcCellRow, int srcCellCol) throws EvaluationException {
+       public static int resolveRowOrColIndexArg(ValueEval rowColIndexArg, int srcCellRow, int srcCellCol) throws EvaluationException {
                if(rowColIndexArg == null) {
                        throw new IllegalArgumentException("argument must not be null");
                }
@@ -362,7 +361,7 @@ final class LookupUtils {
         * The second argument (table_array) should be an area ref, but can actually be a cell ref, in
         * which case it is interpreted as a 1x1 area ref.  Other scalar values cause #VALUE! error.
         */
-       public static AreaEval resolveTableArrayArg(Eval eval) throws EvaluationException {
+       public static AreaEval resolveTableArrayArg(ValueEval eval) throws EvaluationException {
                if (eval instanceof AreaEval) {
                        return (AreaEval) eval;
                }
@@ -386,7 +385,7 @@ final class LookupUtils {
         * @return
         * @throws EvaluationException
         */
-       public static boolean resolveRangeLookupArg(Eval rangeLookupArg, int srcCellRow, short srcCellCol) throws EvaluationException {
+       public static boolean resolveRangeLookupArg(ValueEval rangeLookupArg, int srcCellRow, short srcCellCol) throws EvaluationException {
                if(rangeLookupArg == null) {
                        // range_lookup arg not provided
                        return true; // default is TRUE
index 9f6193744098242e911bad4462b51b8a347f4e3f..17c756162a9928fefa9d908d839bdff2dd72fe19 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
@@ -123,7 +122,7 @@ public final class Match implements Function {
                }
        }
 
-       private static ValueVector evaluateLookupRange(Eval eval) throws EvaluationException {
+       private static ValueVector evaluateLookupRange(ValueEval eval) throws EvaluationException {
                if (eval instanceof RefEval) {
                        RefEval re = (RefEval) eval;
                        return new SingleValueVector(re.getInnerValueEval());
@@ -155,9 +154,9 @@ public final class Match implements Function {
 
 
 
-       private static double evaluateMatchTypeArg(Eval arg, int srcCellRow, short srcCellCol)
+       private static double evaluateMatchTypeArg(ValueEval arg, int srcCellRow, short srcCellCol)
                        throws EvaluationException {
-               Eval match_type = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
+               ValueEval match_type = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
 
                if(match_type instanceof ErrorEval) {
                        throw new EvaluationException((ErrorEval)match_type);
index 4c6295615dab4318b7b372b6f100237007aeed4a..c31cd08d1b0f778c21da924d9e1fe0d88ccd732f 100644 (file)
@@ -25,7 +25,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.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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.RefEval;
@@ -92,7 +91,7 @@ public final class Mode implements Function {
                return new NumberEval(result);
        }
 
-       private static void collectValues(Eval arg, List<Double> temp) throws EvaluationException {
+       private static void collectValues(ValueEval arg, List<Double> temp) throws EvaluationException {
                if (arg instanceof AreaEval) {
                        AreaEval ae = (AreaEval) arg;
                        int width = ae.getWidth();
@@ -114,7 +113,7 @@ public final class Mode implements Function {
 
        }
 
-       private static void collectValue(Eval arg, List<Double> temp, boolean mustBeNumber)
+       private static void collectValue(ValueEval arg, List<Double> temp, boolean mustBeNumber)
                        throws EvaluationException {
                if (arg instanceof ErrorEval) {
                        throw new EvaluationException((ErrorEval) arg);
index 67bfaa038b626dd1363c40810fa6a29c00e98eac..69aae428b456c6eded2b32616c643583144dedbc 100644 (file)
@@ -21,7 +21,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.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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -118,7 +117,7 @@ public abstract class MultiOperandNumericFunction implements Function {
         *
         * @return never <code>null</code>
         */
-       protected final double[] getNumberArray(Eval[] operands) throws EvaluationException {
+       protected final double[] getNumberArray(ValueEval[] operands) throws EvaluationException {
                if (operands.length > getMaxNumOperands()) {
                        throw EvaluationException.invalidValue();
                }
@@ -133,7 +132,7 @@ public abstract class MultiOperandNumericFunction implements Function {
        /**
         * Collects values from a single argument
         */
-       private void collectValues(Eval operand, DoubleList temp) throws EvaluationException {
+       private void collectValues(ValueEval operand, DoubleList temp) throws EvaluationException {
 
                if (operand instanceof AreaEval) {
                        AreaEval ae = (AreaEval) operand;
@@ -152,7 +151,7 @@ public abstract class MultiOperandNumericFunction implements Function {
                        collectValue(re.getInnerValueEval(), true, temp);
                        return;
                }
-               collectValue((ValueEval)operand, false, temp);
+               collectValue(operand, false, temp);
        }
        private void collectValue(ValueEval ve, boolean isViaReference, DoubleList temp)  throws EvaluationException {
                if (ve == null) {
index 310be7bb15ecabe1f279b60fbc1ae0924019a84f..9dd6a84ce182b59c88e6aedc3e266f5c13a1d5ba 100644 (file)
@@ -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;
@@ -33,7 +32,7 @@ public abstract class NumericFunction implements Function {
        static final double TEN = 10.0;
        static final double LOG_10_TO_BASE_e = Math.log(TEN);
 
-       protected static final double singleOperandEvaluate(Eval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
+       protected static final double singleOperandEvaluate(ValueEval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
                double result = OperandResolver.coerceValueToDouble(ve);
                checkValue(result);
@@ -57,7 +56,7 @@ public abstract class NumericFunction implements Function {
                return new NumberEval(result);
        }
 
-       protected abstract double eval(Eval[] args, int srcCellRow, short srcCellCol) throws EvaluationException;
+       protected abstract double eval(ValueEval[] args, int srcCellRow, short srcCellCol) throws EvaluationException;
 
        /* -------------------------------------------------------------------------- */
        // intermediate sub-classes (one-arg, two-arg and multi-arg)
@@ -66,7 +65,7 @@ public abstract class NumericFunction implements Function {
                protected OneArg() {
                        // no fields to initialise
                }
-               protected final double eval(Eval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
+               protected final double eval(ValueEval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
                        if (args.length != 1) {
                                throw new EvaluationException(ErrorEval.VALUE_INVALID);
                        }
@@ -80,7 +79,7 @@ public abstract class NumericFunction implements Function {
                protected TwoArg() {
                        // no fields to initialise
                }
-               protected final double eval(Eval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
+               protected final double eval(ValueEval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
                        if (args.length != 2) {
                                throw new EvaluationException(ErrorEval.VALUE_INVALID);
                        }
@@ -98,7 +97,7 @@ public abstract class NumericFunction implements Function {
                        _minArgs = minArgs;
                        _maxArgs = maxArgs;
                }
-               protected final double eval(Eval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
+               protected final double eval(ValueEval[] args, int srcCellRow, short srcCellCol) throws EvaluationException {
                        int nArgs = args.length;
                        if (nArgs < _minArgs || nArgs > _maxArgs) {
                                throw new EvaluationException(ErrorEval.VALUE_INVALID);
index c83e1b8f572dd0f5b5adcfd754d08788b2725708..c3df6062ff6a090fbb2b346d25a96b942890a192 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record.formula.functions;
 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.EvaluationException;
 import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
 import org.apache.poi.hssf.record.formula.eval.OperandResolver;
@@ -207,7 +206,7 @@ public final class Offset implements Function {
                return baseRef.offset(orRow.getFirstIndex(), orRow.getLastIndex(), orCol.getFirstIndex(), orCol.getLastIndex());
        }
 
-       private static BaseRef evaluateBaseRef(Eval eval) throws EvaluationException {
+       private static BaseRef evaluateBaseRef(ValueEval eval) throws EvaluationException {
 
                if(eval instanceof RefEval) {
                        return new BaseRef((RefEval)eval);
@@ -224,7 +223,7 @@ public final class Offset implements Function {
        /**
         * OFFSET's numeric arguments (2..5) have similar processing rules
         */
-       private static int evaluateIntArg(Eval eval, int srcCellRow, short srcCellCol) throws EvaluationException {
+       private static int evaluateIntArg(ValueEval eval, int srcCellRow, short srcCellCol) throws EvaluationException {
 
                double d = evaluateDoubleArg(eval, srcCellRow, srcCellCol);
                return convertDoubleToInt(d);
@@ -240,7 +239,7 @@ public final class Offset implements Function {
                return (int)Math.floor(d);
        }
 
-       private static double evaluateDoubleArg(Eval eval, int srcCellRow, short srcCellCol) throws EvaluationException {
+       private static double evaluateDoubleArg(ValueEval eval, int srcCellRow, short srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(eval, srcCellRow, srcCellCol);
 
                if (ve instanceof NumericValueEval) {
index 8ff69491c6aee6817f68400a9a03dff3bedddedc..3a32d6430872abdb8ad96b04cb3ee452ac0505ac 100644 (file)
@@ -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.StringEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -40,7 +39,7 @@ import org.apache.poi.hssf.record.formula.eval.ValueEval;
  */
 public final class Replace extends TextFunction {
 
-       protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+       protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                throws EvaluationException {
                if (args.length != 4) {
                        return ErrorEval.VALUE_INVALID;
index 7272a07c5daef67cf9ed2975e26a285884e77908..77e347fe17eb7b282d92ac80fb0a1359f4bfb494 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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;
@@ -43,7 +42,7 @@ public final class Rows implements Function {
                                // too many arguments
                                return ErrorEval.VALUE_INVALID;
                }
-               Eval firstArg = args[0];
+               ValueEval firstArg = args[0];
 
                int result;
                if (firstArg instanceof AreaEval) {
index 2cd3a719c4b3b6aa26fcc4a54c87a4ed5a941060..287d9ff2fe1dff04a96fc81cdda9b5c403845650 100644 (file)
@@ -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.StringEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -30,7 +29,7 @@ import org.apache.poi.hssf.record.formula.eval.ValueEval;
  */
 public final class Substitute extends TextFunction {
 
-       protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+       protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                        throws EvaluationException {
                if (args.length < 3 || args.length > 4) {
                        return ErrorEval.VALUE_INVALID;
index 97ba463d92af0803bc1766a6c03ea2e1c7af73b8..e60d43befc2aa81525bb4d0a8322506364dbb1a7 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.RefEval;
@@ -100,7 +99,7 @@ public final class Sumif implements Function {
         * @return a range of the same dimensions as aeRange using eval to define the top left corner.
         * @throws EvaluationException if eval is not a reference
         */
-       private static AreaEval createSumRange(Eval eval, AreaEval aeRange) throws EvaluationException {
+       private static AreaEval createSumRange(ValueEval eval, AreaEval aeRange) throws EvaluationException {
                if (eval instanceof AreaEval) {
                        return ((AreaEval) eval).offset(0, aeRange.getHeight()-1, 0, aeRange.getWidth()-1);
                }
@@ -110,7 +109,7 @@ public final class Sumif implements Function {
                throw new EvaluationException(ErrorEval.VALUE_INVALID);
        }
 
-       private static AreaEval convertRangeArg(Eval eval) throws EvaluationException {
+       private static AreaEval convertRangeArg(ValueEval eval) throws EvaluationException {
                if (eval instanceof AreaEval) {
                        return (AreaEval) eval;
                }
index ff55e1921f5ef1544e4f0248a38c48c5201278f9..b6ed8148de22f955f49c64d0cbd59d3f5d8389a5 100644 (file)
@@ -19,7 +19,6 @@ 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.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;
@@ -34,11 +33,11 @@ public abstract class TextFunction implements Function {
 
        protected static final String EMPTY_STRING = "";
 
-       protected static final String evaluateStringArg(Eval eval, int srcRow, short srcCol) throws EvaluationException {
+       protected static final String evaluateStringArg(ValueEval eval, int srcRow, short srcCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(eval, srcRow, srcCol);
                return OperandResolver.coerceValueToString(ve);
        }
-       protected static final int evaluateIntArg(Eval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
+       protected static final int evaluateIntArg(ValueEval arg, int srcCellRow, short srcCellCol) throws EvaluationException {
                ValueEval ve = OperandResolver.getSingleValue(arg, srcCellRow, srcCellCol);
                return OperandResolver.coerceValueToInt(ve);
        }
@@ -51,7 +50,7 @@ public abstract class TextFunction implements Function {
                }
        }
 
-       protected abstract ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol) throws EvaluationException;
+       protected abstract ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol) throws EvaluationException;
 
        /* ---------------------------------------------------------------------- */
 
@@ -60,7 +59,7 @@ public abstract class TextFunction implements Function {
                protected SingleArgTextFunc() {
                        // no fields to initialise
                }
-               protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+               protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                                throws EvaluationException {
                        if (args.length != 1) {
                                return ErrorEval.VALUE_INVALID;
@@ -110,7 +109,7 @@ public abstract class TextFunction implements Function {
         */
        public static final Function MID = new TextFunction() {
 
-               protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+               protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                                throws EvaluationException {
                        if (args.length != 3) {
                                return ErrorEval.VALUE_INVALID;
@@ -145,7 +144,7 @@ public abstract class TextFunction implements Function {
                protected LeftRight(boolean isLeft) {
                        _isLeft = isLeft;
                }
-               protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+               protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                                throws EvaluationException {
                        if (args.length != 2) {
                                return ErrorEval.VALUE_INVALID;
@@ -168,7 +167,7 @@ public abstract class TextFunction implements Function {
 
        public static final Function CONCATENATE = new TextFunction() {
 
-               protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+               protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                                throws EvaluationException {
                        StringBuffer sb = new StringBuffer();
                        for (int i=0, iSize=args.length; i<iSize; i++) {
@@ -180,7 +179,7 @@ public abstract class TextFunction implements Function {
 
        public static final Function EXACT = new TextFunction() {
 
-               protected ValueEval evaluateFunc(Eval[] args, int srcCellRow, short srcCellCol)
+               protected ValueEval evaluateFunc(ValueEval[] args, int srcCellRow, short srcCellCol)
                                throws EvaluationException {
                        if (args.length != 2) {
                                return ErrorEval.VALUE_INVALID;
index 6d1ef146ca4f37bbab5fb08ae112a0d8a379d3d4..6acaec28712e881720fb688594e0917fbafbda2a 100644 (file)
@@ -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.MissingArgEval;
 import org.apache.poi.hssf.record.formula.eval.NumberEval;
@@ -51,12 +50,12 @@ public final class Time implements Function {
                }
                return new NumberEval(result);
        }
-       private static int evalArg(Eval arg) throws EvaluationException {
+       private static int evalArg(ValueEval arg) throws EvaluationException {
                if (arg == MissingArgEval.instance) {
                        return 0;
                }
                // Excel silently truncates double values to integers
-               return OperandResolver.coerceValueToInt((ValueEval) arg);
+               return OperandResolver.coerceValueToInt(arg);
        }
        /**
         * Converts the supplied hours, minutes and seconds to an Excel time value.
index 9887f69c3309e528c4fab47cbd3fe6e57fe60a40..f61ffdfade25051f0823b3a6eb4f68122b78b5b6 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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;
@@ -43,7 +42,7 @@ import org.apache.poi.hssf.record.formula.functions.LookupUtils.ValueVector;
 public final class Vlookup implements Function {
 
        public ValueEval evaluate(ValueEval[] args, int srcCellRow, short srcCellCol) {
-               Eval arg3 = null;
+               ValueEval arg3 = null;
                switch(args.length) {
                        case 4:
                                arg3 = args[3]; // important: assumed array element is never null
index c43cca0adf00d03ff29739335ff8f8bb4f5bd1eb..c37c453f704039575d18cdc919c16e9d52e1fe03 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hssf.record.formula.functions;
 
 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.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.RefEval;
@@ -167,7 +166,7 @@ public abstract class XYNumericFunction implements Function {
                return result;
        }
 
-       private static ValueVector createValueVector(Eval arg) throws EvaluationException {
+       private static ValueVector createValueVector(ValueEval arg) throws EvaluationException {
                if (arg instanceof ErrorEval) {
                        throw new EvaluationException((ErrorEval) arg);
                }
@@ -177,9 +176,6 @@ public abstract class XYNumericFunction implements Function {
                if (arg instanceof RefEval) {
                        return new RefValueArray((RefEval) arg);
                }
-               if (arg instanceof ValueEval) {
-                       return new SingleCellValueArray((ValueEval) arg);
-               }
-               throw new RuntimeException("Unexpected eval class (" + arg.getClass().getName() + ")");
+               return new SingleCellValueArray(arg);
        }
 }
index 39b4b08f88858902708e5cffdf62d4a7e1a9ead2..694d679977d1ee3d9e8d1a5693ff46be623ba11b 100755 (executable)
@@ -20,7 +20,7 @@ package org.apache.poi.hssf.record.formula.functions;
 import junit.framework.AssertionFailedError;
 
 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.NumericValueEval;
 import org.apache.poi.hssf.record.formula.eval.OperationEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
@@ -82,7 +82,7 @@ public final class NumericFunctionInvoker {
         */
        private static double invokeInternal(Object target, ValueEval[] args, int srcCellRow, int srcCellCol)
                                throws NumericEvalEx {
-               Eval evalResult;
+               ValueEval evalResult;
                // TODO - make OperationEval extend Function
                try {
                        if (target instanceof Function) {