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: //
09: //
10:
11: package de.uka.ilkd.key.strategy.feature.instantiator;
12:
13: import de.uka.ilkd.key.rule.RuleApp;
14:
15: /**
16: * Interface encapsulating points during the evaluation of a feature term where
17: * it is either possible to take different branches, or where the feature has to
18: * change the rule application in question (e.g. by instantiation schema
19: * variables).
20: */
21: public interface ChoicePoint {
22:
23: /**
24: * Obtain the branches that can be taken at this point.
25: *
26: * @param oldApp
27: * the current rule application, which can already have been
28: * modified by earlier <code>ChoicePoint</code>s
29: * @return an iterator over the branches of the <code>ChoicePoint</code>
30: */
31: IteratorOfCPBranch getBranches(RuleApp oldApp);
32:
33: }
|