--- /dev/null
+package org.simantics.spreadsheet.graph.formula;\r
+\r
+import org.simantics.spreadsheet.graph.CellFormulaFunction;\r
+import org.simantics.spreadsheet.graph.CellValueVisitor;\r
+import org.simantics.spreadsheet.graph.SpreadsheetGraphUtils;\r
+import org.simantics.spreadsheet.graph.parser.ast.AstArgList;\r
+\r
+public class OrFormulaFunction implements CellFormulaFunction<Object> {\r
+\r
+ @Override\r
+ public Object evaluate(CellValueVisitor visitor, AstArgList args) {\r
+ if (args.values.size() == 0) throw new IllegalStateException();\r
+ \r
+ for (int i = 0; i < args.values.size(); i++) {\r
+ Object obj = null;\r
+ try {\r
+ obj = args.values.get(i).accept(visitor);\r
+ } catch (IllegalStateException e){\r
+ return FormulaError2.NAME.getString();\r
+ }\r
+ FormulaError2 error = FormulaError2.forObject(obj);\r
+ if(error!=null) return error.getString();\r
+ \r
+ if (SpreadsheetGraphUtils.asBoolean(obj))\r
+ return Boolean.TRUE;\r
+ }\r
+ return Boolean.FALSE;\r
+ }\r
+\r
+}\r