2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 import gov.nasa.jpf.jvm.ClassFile;
21 import gov.nasa.jpf.report.Publisher;
22 import gov.nasa.jpf.report.PublisherExtension;
23 import gov.nasa.jpf.search.Search;
24 import gov.nasa.jpf.search.SearchListener;
25 import gov.nasa.jpf.vm.ChoiceGenerator;
26 import gov.nasa.jpf.vm.ClassInfo;
27 import gov.nasa.jpf.vm.ElementInfo;
28 import gov.nasa.jpf.vm.Instruction;
29 import gov.nasa.jpf.vm.MethodInfo;
30 import gov.nasa.jpf.vm.ThreadInfo;
31 import gov.nasa.jpf.vm.VM;
32 import gov.nasa.jpf.vm.VMListener;
35 * Adapter class that dummy implements both VMListener and SearchListener interfaces
36 * Used to ease implementation of listeners that only process a few notifications
38 public abstract class ListenerAdapter implements VMListener, SearchListener, PublisherExtension {
40 //--- the VMListener interface
42 public void vmInitialized(VM vm) {}
44 public void instructionExecuted(VM vm, ThreadInfo currentThread, Instruction nextInstruction, Instruction executedInstruction) {}
46 public void executeInstruction(VM vm, ThreadInfo currentThread, Instruction instructionToExecute) {}
48 public void threadStarted(VM vm, ThreadInfo startedThread) {}
50 public void threadWaiting (VM vm, ThreadInfo waitingThread) {}
52 public void threadNotified (VM vm, ThreadInfo notifiedThread) {}
54 public void threadInterrupted (VM vm, ThreadInfo interruptedThread) {}
56 public void threadScheduled (VM vm, ThreadInfo scheduledThread) {}
58 public void threadBlocked (VM vm, ThreadInfo blockedThread, ElementInfo lock) {}
60 public void threadTerminated(VM vm, ThreadInfo terminatedThread) {}
62 public void loadClass (VM vm, ClassFile cf) {}
64 public void classLoaded(VM vm, ClassInfo loadedClass) {}
66 public void objectCreated(VM vm, ThreadInfo currentThread, ElementInfo newObject) {}
68 public void objectReleased(VM vm, ThreadInfo currentThread, ElementInfo releasedObject) {}
70 public void objectLocked (VM vm, ThreadInfo currentThread, ElementInfo lockedObject) {}
72 public void objectUnlocked (VM vm, ThreadInfo currentThread, ElementInfo unlockedObject) {}
74 public void objectWait (VM vm, ThreadInfo currentThread, ElementInfo waitingObject) {}
76 public void objectNotify (VM vm, ThreadInfo currentThread, ElementInfo notifyingObject) {}
78 public void objectNotifyAll (VM vm, ThreadInfo currentThread, ElementInfo notifyingObject) {}
80 public void objectExposed (VM vm, ThreadInfo currentThread, ElementInfo fieldOwnerObject, ElementInfo exposedObject) {}
82 public void objectShared (VM vm, ThreadInfo currentThread, ElementInfo sharedObject) {}
84 public void gcBegin(VM vm) {}
86 public void gcEnd(VM vm) {}
88 public void exceptionThrown(VM vm, ThreadInfo currentThread, ElementInfo thrownException) {}
90 public void exceptionBailout(VM vm, ThreadInfo currentThread) {}
92 public void exceptionHandled(VM vm, ThreadInfo currentThread) {}
94 public void choiceGeneratorRegistered (VM vm, ChoiceGenerator<?> nextCG, ThreadInfo currentThread, Instruction executedInstruction) {}
96 public void choiceGeneratorSet (VM vm, ChoiceGenerator<?> newCG) {}
98 public void choiceGeneratorAdvanced (VM vm, ChoiceGenerator<?> currentCG) {}
100 public void choiceGeneratorProcessed (VM vm, ChoiceGenerator<?> processedCG) {}
102 public void methodEntered (VM vm, ThreadInfo currentThread, MethodInfo enteredMethod) {}
104 public void methodExited (VM vm, ThreadInfo currentThread, MethodInfo exitedMethod) {}
107 //--- the SearchListener interface
109 public void stateAdvanced(Search search) {}
111 public void stateProcessed(Search search) {}
113 public void stateBacktracked(Search search) {}
115 public void statePurged(Search search) {}
117 public void stateStored(Search search) {}
119 public void stateRestored(Search search) {}
121 public void searchProbed (Search search){}
123 public void propertyViolated(Search search) {}
125 public void searchStarted(Search search) {}
127 public void searchConstraintHit(Search search) {}
129 public void searchFinished(Search search) {}
132 //--- PublisherExtension interface
134 public void publishStart (Publisher publisher) {}
136 public void publishTransition (Publisher publisher) {}
138 public void publishPropertyViolation (Publisher publisher) {}
140 public void publishConstraintHit (Publisher publisher) {}
142 public void publishFinished (Publisher publisher) {}
144 public void publishProbe (Publisher publisher) {}