01: // This file is part of KeY - Integrated Deductive Software Design
02: // Copyright (C) 2001-2007 Universitaet Karlsruhe, Germany
03: // Universitaet Koblenz-Landau, Germany
04: // Chalmers University of Technology, Sweden
05: //
06: // The KeY system is protected by the GNU General Public License.
07: // See LICENSE.TXT for details.
08: // This file is part of KeY - Integrated Deductive Software Design
09: // Copyright (C) 2001-2005 Universitaet Karlsruhe, Germany
10: // Universitaet Koblenz-Landau, Germany
11: // Chalmers University of Technology, Sweden
12: //
13: // The KeY system is protected by the GNU General Public License.
14: // See LICENSE.TXT for details.
15: //
16: //
17:
18: package de.uka.ilkd.key.proof.init;
19:
20: import de.uka.ilkd.key.rule.AbstractIntegerRule;
21:
22: /** This abstract superclass enables unified checking for the availability of external decision
23: * procedure executables. The availability is hereby checked by a test execution of the
24: * decision procedure of interest.<br>
25: * If a decision procedure is available, an <tt>AbstractIntegerRule</tt> (representing the
26: * execution of this decision procedure) can be added to a list of available rules.
27: *
28: * @author akuwertz
29: * @version 1.0, 09/10/2006
30: */
31:
32: public abstract class AbstractExecDecproc {
33:
34: /** Maximum time to wait for decision procedure answer in ms */
35: protected static final long TIMEOUT = 5000;
36:
37: /** Checks whether a specified decision procedure is available for execution
38: * @return <tt>true</tt> if the specified decision procedure is available
39: */
40: public abstract boolean isAvailable();
41:
42: /** Returns an integer rule representing the execution of the specified decision procedure
43: * @return an <tt>AbstractIntegerRule</tt> representing the specified decision procedure
44: */
45: public abstract AbstractIntegerRule getRule();
46:
47: /** Returns the command string used to execute the specified decision procedure
48: * @return the <tt>String</tt> used to execute the decision procedure
49: */
50: public abstract String getCmd();
51: }
|