001 /*
002 * Copyright (c) 2005 Peter Palotas, Fredrik Johansson, Einar Pehrson,
003 * Sebastian Kekkonen, Lars Magnus Lång, Malin Johansson and Sofia Nilsson
004 *
005 * This file is part of
006 * CleanSheets Extension for Assertions
007 *
008 * CleanSheets Extension for Assertions is free software; you can
009 * redistribute it and/or modify it under the terms of the GNU General Public
010 * License as published by the Free Software Foundation; either version 2 of
011 * the License, or (at your option) any later version.
012 *
013 * CleanSheets Extension for Assertions is distributed in the hope that
014 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
015 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016 * See the GNU General Public License for more details.
017 *
018 * You should have received a copy of the GNU General Public License
019 * along with CleanSheets Extension for Assertions; if not, write to the
020 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
021 * Boston, MA 02111-1307 USA
022 */
023 package csheets.ext.assertion;
024
025 import csheets.core.formula.Formula;
026
027 /** Class representing a System Generated Assertion.
028 @author Peter Palotas */
029 public class SGAssertion extends Assertion {
030
031 /** The unique version identifier used for serialization */
032 private static final long serialVersionUID = -5713386003093260622L;
033
034 /** Constructs a new System Generated Assertion (SGA) for the specified
035 Cell if possible.
036 @param cell the <code>Cell</code> on which to create an SGA.
037 @throws AssertionArithmeticException if the SGA could not be generated. */
038 public SGAssertion(AssertableCell cell) throws AssertionArithmeticException, MathException {
039 Formula formula = cell.getFormula();
040 if (formula == null) {
041 throw new AssertionArithmeticException("Cell " + cell.getAddress() + " does not contain a formula");
042 }
043
044 intervals = new AssertionArithmeticVisitor().getResult(formula);
045 }
046 }