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 OrFormulaFunction implements CellFormulaFunction<Object> {
\r
11 public Object evaluate(CellValueVisitor visitor, AstArgList args) {
\r
12 if (args.values.size() == 0) throw new IllegalStateException();
\r
14 for (int i = 0; i < args.values.size(); i++) {
\r
17 obj = args.values.get(i).accept(visitor);
\r
18 } catch (IllegalStateException e){
\r
19 return FormulaError2.NAME.getString();
\r
21 FormulaError2 error = FormulaError2.forObject(obj);
\r
22 if(error!=null) return error.getString();
\r
24 if (SpreadsheetGraphUtils.asBoolean(obj))
\r
25 return Boolean.TRUE;
\r
27 return Boolean.FALSE;
\r