Fixing issues: counter bugs, object ID comparison, exclusion of non-event and non...
[jpf-core.git] / src / main / gov / nasa / jpf / ListenerAdapter.java
1 /*
2  * Copyright (C) 2014, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
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
9  * 
10  *        http://www.apache.org/licenses/LICENSE-2.0. 
11  *
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.
17  */
18 package gov.nasa.jpf;
19
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;
33
34 /**
35  * Adapter class that dummy implements both VMListener and SearchListener interfaces
36  * Used to ease implementation of listeners that only process a few notifications
37  */
38 public abstract class ListenerAdapter implements VMListener, SearchListener, PublisherExtension {
39
40   //--- the VMListener interface
41   @Override
42   public void vmInitialized(VM vm) {}
43   @Override
44   public void instructionExecuted(VM vm, ThreadInfo currentThread, Instruction nextInstruction, Instruction executedInstruction) {}
45   @Override
46   public void executeInstruction(VM vm, ThreadInfo currentThread, Instruction instructionToExecute) {}
47   @Override
48   public void threadStarted(VM vm, ThreadInfo startedThread) {}
49   @Override
50   public void threadWaiting (VM vm, ThreadInfo waitingThread) {}
51   @Override
52   public void threadNotified (VM vm, ThreadInfo notifiedThread) {}
53   @Override
54   public void threadInterrupted (VM vm, ThreadInfo interruptedThread) {}
55   @Override
56   public void threadScheduled (VM vm, ThreadInfo scheduledThread) {}
57   @Override
58   public void threadBlocked (VM vm, ThreadInfo blockedThread, ElementInfo lock) {}
59   @Override
60   public void threadTerminated(VM vm, ThreadInfo terminatedThread) {}
61   @Override
62   public void loadClass (VM vm, ClassFile cf) {}
63   @Override
64   public void classLoaded(VM vm, ClassInfo loadedClass) {}
65   @Override
66   public void objectCreated(VM vm, ThreadInfo currentThread, ElementInfo newObject) {}
67   @Override
68   public void objectReleased(VM vm, ThreadInfo currentThread, ElementInfo releasedObject) {}
69   @Override
70   public void objectLocked (VM vm, ThreadInfo currentThread, ElementInfo lockedObject) {}
71   @Override
72   public void objectUnlocked (VM vm, ThreadInfo currentThread, ElementInfo unlockedObject) {}
73   @Override
74   public void objectWait (VM vm, ThreadInfo currentThread, ElementInfo waitingObject) {}
75   @Override
76   public void objectNotify (VM vm, ThreadInfo currentThread, ElementInfo notifyingObject) {}
77   @Override
78   public void objectNotifyAll (VM vm, ThreadInfo currentThread, ElementInfo notifyingObject) {}
79   @Override
80   public void objectExposed (VM vm, ThreadInfo currentThread, ElementInfo fieldOwnerObject, ElementInfo exposedObject) {}
81   @Override
82   public void objectShared (VM vm, ThreadInfo currentThread, ElementInfo sharedObject) {}
83   @Override
84   public void gcBegin(VM vm) {}
85   @Override
86   public void gcEnd(VM vm) {}
87   @Override
88   public void exceptionThrown(VM vm, ThreadInfo currentThread, ElementInfo thrownException) {}
89   @Override
90   public void exceptionBailout(VM vm, ThreadInfo currentThread) {}
91   @Override
92   public void exceptionHandled(VM vm, ThreadInfo currentThread) {}
93   @Override
94   public void choiceGeneratorRegistered (VM vm, ChoiceGenerator<?> nextCG, ThreadInfo currentThread, Instruction executedInstruction) {}
95   @Override
96   public void choiceGeneratorSet (VM vm, ChoiceGenerator<?> newCG) {}
97   @Override
98   public void choiceGeneratorAdvanced (VM vm, ChoiceGenerator<?> currentCG) {}
99   @Override
100   public void choiceGeneratorProcessed (VM vm, ChoiceGenerator<?> processedCG) {}
101   @Override
102   public void methodEntered (VM vm, ThreadInfo currentThread, MethodInfo enteredMethod) {}
103   @Override
104   public void methodExited (VM vm, ThreadInfo currentThread, MethodInfo exitedMethod) {}
105
106
107   //--- the SearchListener interface
108   @Override
109   public void stateAdvanced(Search search) {}
110   @Override
111   public void stateProcessed(Search search) {}
112   @Override
113   public void stateBacktracked(Search search) {}
114   @Override
115   public void statePurged(Search search) {}
116   @Override
117   public void stateStored(Search search) {}
118   @Override
119   public void stateRestored(Search search) {}
120   @Override
121   public void searchProbed (Search search){}
122   @Override
123   public void propertyViolated(Search search) {}
124   @Override
125   public void searchStarted(Search search) {}
126   @Override
127   public void searchConstraintHit(Search search) {}
128   @Override
129   public void searchFinished(Search search) {}
130
131
132   //--- PublisherExtension interface
133   @Override
134   public void publishStart (Publisher publisher) {}
135   @Override
136   public void publishTransition (Publisher publisher) {}
137   @Override
138   public void publishPropertyViolation (Publisher publisher) {}
139   @Override
140   public void publishConstraintHit (Publisher publisher) {}
141   @Override
142   public void publishFinished (Publisher publisher) {}
143   @Override
144   public void publishProbe (Publisher publisher) {}
145
146 }