X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.spreadsheet%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fsolver%2Fformula%2FIfFormulaFunction.java;fp=bundles%2Forg.simantics.spreadsheet.graph%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fgraph%2Fformula%2FIfFormulaFunction.java;h=351d6258f0d0638d6a688cb7c3d10ad94e5c5fbf;hp=2d2ef8c5b74e9ce41a5398b7629e98320dae6cc3;hb=5c67a96d34fe904b8c4b0375cd08ff1d543bf369;hpb=9a37dabc6c0212ed3e14499c88df3208cd06f9b0 diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/IfFormulaFunction.java b/bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/solver/formula/IfFormulaFunction.java similarity index 51% rename from bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/IfFormulaFunction.java rename to bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/solver/formula/IfFormulaFunction.java index 2d2ef8c5b..351d6258f 100644 --- a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/IfFormulaFunction.java +++ b/bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/solver/formula/IfFormulaFunction.java @@ -1,41 +1,39 @@ -package org.simantics.spreadsheet.graph.formula; +package org.simantics.spreadsheet.solver.formula; -import org.simantics.spreadsheet.graph.CellFormulaFunction; -import org.simantics.spreadsheet.graph.CellValueVisitor; -import org.simantics.spreadsheet.graph.SpreadsheetGraphUtils; -import org.simantics.spreadsheet.graph.parser.ast.AstArgList; -import org.simantics.spreadsheet.graph.parser.ast.AstNothing; -import org.simantics.spreadsheet.graph.parser.ast.AstValue; +import org.simantics.spreadsheet.Spreadsheets; +import org.simantics.spreadsheet.solver.formula.parser.ast.AstArgList; +import org.simantics.spreadsheet.solver.formula.parser.ast.AstNothing; +import org.simantics.spreadsheet.solver.formula.parser.ast.AstValue; public class IfFormulaFunction implements CellFormulaFunction { @Override public Object evaluate(CellValueVisitor visitor, AstArgList args) { if (args.values.size() != 3) throw new IllegalStateException(); - + Object condition = args.values.get(0).accept(visitor); AstValue ifTrueResult = args.values.get(1); AstValue ifFalseResult = args.values.get(2); - + FormulaError2 error = FormulaError2.forObject(condition); - if(error!=null) return error.getString(); + if(error!=null) return error.getString(); - if (SpreadsheetGraphUtils.asBoolean(condition)) { + if (Spreadsheets.asBoolean(condition)) { if(ifTrueResult==null || ifTrueResult instanceof AstNothing) - return 0; + return 0; try { - return ifTrueResult.accept(visitor); + return ifTrueResult.accept(visitor); } catch (IllegalStateException e){ - return FormulaError2.NAME.getString(); + return FormulaError2.NAME.getString(); } } else { if(ifFalseResult==null || ifFalseResult instanceof AstNothing) - return 0; + return 0; try { - return ifFalseResult.accept(visitor); + return ifFalseResult.accept(visitor); } catch (IllegalStateException e){ - return FormulaError2.NAME.getString(); + return FormulaError2.NAME.getString(); } } }