]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/AverageFormulaFunction.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / formula / AverageFormulaFunction.java
diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/AverageFormulaFunction.java b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/AverageFormulaFunction.java
deleted file mode 100644 (file)
index b8ca32e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.simantics.spreadsheet.graph.formula;
-
-import org.simantics.databoard.binding.mutable.Variant;
-import org.simantics.spreadsheet.graph.CellFormulaFunction;
-import org.simantics.spreadsheet.graph.CellValueVisitor;
-import org.simantics.spreadsheet.graph.SpreadsheetGraphUtils;
-import org.simantics.spreadsheet.graph.SpreadsheetMatrix;
-import org.simantics.spreadsheet.graph.parser.ast.AstArgList;
-import org.simantics.spreadsheet.graph.parser.ast.AstValue;
-
-public class AverageFormulaFunction implements CellFormulaFunction<Object> {
-
-    @Override
-    public Object evaluate(CellValueVisitor visitor, AstArgList args) {
-        if (args.values.size() == 0)
-            throw new IllegalStateException();
-        Double sum = 0.0;
-        double count = 0.0;
-        for(AstValue value : args.values){
-               Object res = value.accept(visitor);
-               if (res instanceof SpreadsheetMatrix) {
-              Object value2 = ((SpreadsheetMatrix) res).sumWithFormulaError();
-              if(value2 instanceof String) return value2;
-              
-              sum += ((Number)value2).doubleValue();
-              count += ((SpreadsheetMatrix) res).countOfActualDoubleValues();
-               } else {
-                       FormulaError2 err = FormulaError2.forObject(res);
-                       if(err!=null) return err.getString();
-                       
-                       if(res instanceof Variant){
-                               Double dVal = SpreadsheetGraphUtils.asDoubleWhereEmptyStringIsZero(res);
-                               if(dVal==null) res = ((Variant)res).toString();
-                               else res = dVal;
-                       }
-                       
-                       Double v = null;
-               if(res instanceof String && !res.equals("")){
-                       v = SpreadsheetGraphUtils.asDoubleWhereEmptyStringIsZero(res);
-               }
-               else if(res instanceof Number)
-                       v = SpreadsheetGraphUtils.asDoubleWhereEmptyStringIsZero(res);
-               
-                       if(v!=null){
-                               sum += v;
-                               count++;
-                       }
-               }
-        }
-        if(count==0.0) return FormulaError2.DIV0.getString();
-        return sum/count;
-    }
-}
\ No newline at end of file