1 package org.sourceforge.jemm.client;
2
3 import org.sourceforge.jemm.client.events.LockTracer;
4 import org.sourceforge.jemm.client.events.StackTracer;
5 import org.sourceforge.jemm.lifecycle.LockEvent;
6 import org.sourceforge.jemm.lifecycle.MethodEvent;
7 import org.sourceforge.jemm.lifecycle.MethodListener;
8
9
10
11
12
13
14
15
16
17
18
19 public class MethodContextTracker implements MethodListener {
20 StackTracer stackTracer;
21 LockTracer lockTracer;
22
23 public MethodContextTracker(StackTracer tracer,LockTracer lockTracer) {
24 this.stackTracer = tracer;
25 this.lockTracer = lockTracer;
26 }
27
28 @Override
29 public void entityEntered(MethodEvent e) {
30 stackTracer.enterMethod(e.getOrigin(), new Descriptor(e.getDescriptor()));
31 }
32
33 @Override
34 public void entityExited(MethodEvent e) {
35 stackTracer.exitMethod(e.getOrigin(), new Descriptor(e.getDescriptor()));
36 }
37
38 @Override
39 public void beginLock(LockEvent e) {
40 lockTracer.beginLock(e.getOrigin(),e.getLock());
41 }
42
43 @Override
44 public void endLock(LockEvent e) {
45 lockTracer.endLock(e.getOrigin(),e.getLock());
46 }
47 }