1 package org.sourceforge.jemm.lifecycle;
2
3 import org.sourceforge.jemm.types.ID;
4 import org.sourceforge.jemm.util.JEMMObject;
5
6
7
8
9
10
11
12
13 public class ShadowUserObjectImpl implements ShadowUserObject {
14 MethodListener listener;
15 JEMMObject object;
16 ShadowData data;
17
18 public ShadowUserObjectImpl(JEMMObject object, MethodListener l, ID id,
19 int version) {
20 this.data = new ShadowData(id, version);
21 this.object = object;
22 this.listener = l;
23 }
24
25 public ShadowUserObjectImpl(MethodListener l, ID id,
26 int version) {
27 this.data = new ShadowData(id, version);
28 this.listener = l;
29 }
30
31 @Override
32 public void beginLock() {
33 listener.beginLock(new LockEvent(getUserObject(), getUserObject()));
34 }
35
36 @Override
37 public void beginLock(Object obj) {
38 listener.beginLock(new LockEvent(getUserObject(), obj));
39 }
40
41 @Override
42 public void endLock() {
43 listener.endLock(new LockEvent(getUserObject(), getUserObject()));
44 }
45
46 @Override
47 public void endLock(Object obj) {
48 listener.endLock(new LockEvent(getUserObject(), obj));
49 }
50
51 @Override
52 public void entityEntered(String methodSignature) {
53 listener.entityEntered(new MethodEvent(getUserObject(),
54 methodSignature, MethodType.ENTER));
55 }
56
57 @Override
58 public void entityExited(String methodSignature) {
59 listener.entityExited(new MethodEvent(getUserObject(),
60 methodSignature, MethodType.EXIT));
61 }
62
63 @Override
64 public JEMMObject getUserObject() {
65 return object;
66 }
67
68 public void setUserObject(JEMMObject newObject) {
69 this.object = newObject;
70 }
71
72 @Override
73 public ID getID() {
74 return data.getID();
75 }
76
77 public int getVersion() {
78 return data.getVersion();
79 }
80
81 @Override
82 public ShadowData getData() {
83 return data;
84 }
85 }