01: package spoon.reflect.eval;
02:
03: import spoon.support.reflect.eval.VisitorSymbolicEvaluator;
04:
05: /**
06: * This interface defines the basic events that can be received by a symbolic
07: * evaluator observer (during the evaluation).
08: */
09: public interface SymbolicEvaluatorObserver {
10:
11: /**
12: * The observed evaluator is starting an evaluation path.
13: *
14: * @param evaluator
15: * the observed evaluator
16: */
17: void onStartPath(SymbolicEvaluator evaluator);
18:
19: /**
20: * The observed evaluator is ending an evaluation path.
21: *
22: * @param evaluator
23: * the observed evaluator
24: */
25: void onEndPath(SymbolicEvaluator evaluator);
26:
27: /**
28: * The observed evaluator is entering an evaluation step.
29: *
30: * @param evaluator
31: * the observed evaluator
32: * @param step
33: * the evaluation step which is currently entered
34: */
35: void onEnterStep(SymbolicEvaluator evaluator,
36: SymbolicEvaluationStep step);
37:
38: /**
39: * The observed evaluator is leaving an evaluation step.
40: *
41: * @param evaluator
42: * the observed evaluator
43: * @param step
44: * the evaluation step which is currently entered
45: */
46: void onExitStep(VisitorSymbolicEvaluator evaluator,
47: SymbolicEvaluationStep step);
48: }
|