1 package org.simantics.spreadsheet.graph.formula;
\r
3 import org.simantics.spreadsheet.graph.CellFormulaFunction;
\r
4 import org.simantics.spreadsheet.graph.CellValueVisitor;
\r
5 import org.simantics.spreadsheet.graph.SpreadsheetGraphUtils;
\r
6 import org.simantics.spreadsheet.graph.parser.ast.AstArgList;
\r
8 public class AndFormulaFunction implements CellFormulaFunction<Object> {
\r
11 public Object evaluate(CellValueVisitor visitor, AstArgList args) {
\r
12 if (args.values.size() == 0)
\r
13 throw new IllegalStateException();
\r
14 Boolean finalResult = Boolean.TRUE;
\r
15 for (int i = 0; i < args.values.size(); i++) {
\r
16 Object res = (args.values.get(i).accept(visitor));
\r
17 FormulaError2 err = FormulaError2.forObject(res);
\r
18 if(err!=null) return err.getString();
\r
20 if ((res instanceof Boolean && !((Boolean)res)) || !SpreadsheetGraphUtils.asBoolean(res))
\r
21 finalResult = Boolean.FALSE;
\r