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    }