Author: fanningpj
Date: Wed May 25 18:18:40 2022
New Revision: 1901252

URL: http://svn.apache.org/viewvc?rev=1901252&view=rev
Log:
revert change to IDStarAlgorithm.processMatch

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DCount.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DGet.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMax.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMin.java
    
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DSum.java
    
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/IDStarAlgorithm.java

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DCount.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DCount.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DCount.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DCount.java 
Wed May 25 18:18:40 2022
@@ -29,8 +29,8 @@ public final class DCount implements IDS
     private int count;
 
     @Override
-    public boolean processMatch(ValueEval eval, int fieldNumber) {
-        if (fieldNumber < 0 || eval instanceof NumericValueEval) {
+    public boolean processMatch(ValueEval eval) {
+        if (eval instanceof NumericValueEval) {
             count++;
         }
         return true;

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DGet.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DGet.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DGet.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DGet.java 
Wed May 25 18:18:40 2022
@@ -31,7 +31,7 @@ public final class DGet implements IDSta
     private ValueEval result;
 
     @Override
-    public boolean processMatch(ValueEval eval, int fieldNumber) {
+    public boolean processMatch(ValueEval eval) {
         if(result == null) // First match, just set the value.
         {
             result = eval;

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMax.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMax.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMax.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMax.java 
Wed May 25 18:18:40 2022
@@ -33,7 +33,7 @@ public final class DMax implements IDSta
     private ValueEval maximumValue;
 
     @Override
-    public boolean processMatch(ValueEval eval, int fieldNumber) {
+    public boolean processMatch(ValueEval eval) {
         if(eval instanceof NumericValueEval) {
             if(maximumValue == null) { // First match, just set the value.
                 maximumValue = eval;

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMin.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMin.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMin.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DMin.java 
Wed May 25 18:18:40 2022
@@ -33,7 +33,7 @@ public final class DMin implements IDSta
     private ValueEval minimumValue;
 
     @Override
-    public boolean processMatch(ValueEval eval, int fieldNumber) {
+    public boolean processMatch(ValueEval eval) {
         if(eval instanceof NumericValueEval) {
             if(minimumValue == null) { // First match, just set the value.
                 minimumValue = eval;

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
 (original)
+++ 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DStarRunner.java
 Wed May 25 18:18:40 2022
@@ -23,7 +23,9 @@ import org.apache.poi.ss.formula.eval.Ar
 import org.apache.poi.ss.formula.eval.BlankEval;
 import org.apache.poi.ss.formula.eval.ErrorEval;
 import org.apache.poi.ss.formula.eval.EvaluationException;
+import org.apache.poi.ss.formula.eval.MissingArgEval;
 import org.apache.poi.ss.formula.eval.NotImplementedException;
+import org.apache.poi.ss.formula.eval.NumberEval;
 import org.apache.poi.ss.formula.eval.NumericValueEval;
 import org.apache.poi.ss.formula.eval.OperandResolver;
 import org.apache.poi.ss.formula.eval.StringEval;
@@ -138,10 +140,13 @@ public final class DStarRunner implement
                 return ErrorEval.VALUE_INVALID;
             }
             // Filter each entry.
-            if(matches) {
+            if (matches) {
                 ValueEval currentValueEval = resolveReference(db, row, fc);
+                if (fc < 0 && algorithm.allowEmptyMatchField() && 
!(currentValueEval instanceof NumericValueEval)) {
+                    currentValueEval = NumberEval.ZERO;
+                }
                 // Pass the match to the algorithm and conditionally abort the 
search.
-                boolean shouldContinue = 
algorithm.processMatch(currentValueEval, fc);
+                boolean shouldContinue = 
algorithm.processMatch(currentValueEval);
                 if(! shouldContinue) {
                     break;
                 }

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DSum.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DSum.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DSum.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/DSum.java 
Wed May 25 18:18:40 2022
@@ -33,7 +33,7 @@ public final class DSum implements IDSta
     private double totalValue = 0;
 
     @Override
-    public boolean processMatch(ValueEval eval, int fieldNumber) {
+    public boolean processMatch(ValueEval eval) {
         if(eval instanceof NumericValueEval) {
             double currentValue = ((NumericValueEval)eval).getNumberValue();
             totalValue += currentValue;

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/IDStarAlgorithm.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/IDStarAlgorithm.java?rev=1901252&r1=1901251&r2=1901252&view=diff
==============================================================================
--- 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/IDStarAlgorithm.java
 (original)
+++ 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/IDStarAlgorithm.java
 Wed May 25 18:18:40 2022
@@ -27,10 +27,9 @@ public interface IDStarAlgorithm {
     /**
      * Process a match that is found during a run through a database.
      * @param eval ValueEval of the cell in the matching row. References will 
already be resolved.
-     * @param fieldNumber the field number (added in POI 5.2.3)
      * @return Whether we should continue iterating through the database.
      */
-    boolean processMatch(ValueEval eval, int fieldNumber);
+    boolean processMatch(ValueEval eval);
 
     /**
      * Return a result ValueEval that will be the result of the calculation.



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to