1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package com.jcabi.aspects.aj;
31
32 import java.lang.reflect.Method;
33 import java.lang.reflect.Modifier;
34 import org.aspectj.lang.JoinPoint;
35 import org.aspectj.lang.Signature;
36 import org.aspectj.lang.reflect.MethodSignature;
37 import org.aspectj.lang.reflect.SourceLocation;
38
39
40
41
42
43
44 final class ImprovedJoinPoint implements JoinPoint {
45
46
47
48
49 private final JoinPoint joinpoint;
50
51
52
53
54
55
56 ImprovedJoinPoint(final JoinPoint jpt) {
57 this.joinpoint = jpt;
58 }
59
60 @Override
61 public String toString() {
62 return this.joinpoint.toString();
63 }
64
65 @Override
66 public String toShortString() {
67 return this.joinpoint.toShortString();
68 }
69
70 @Override
71 public String toLongString() {
72 return this.joinpoint.toLongString();
73 }
74
75 @Override
76 public Object getThis() {
77 return this.joinpoint.getThis();
78 }
79
80 @Override
81 public Object getTarget() {
82 return this.joinpoint.getTarget();
83 }
84
85 @Override
86 public Object[] getArgs() {
87 return this.joinpoint.getArgs();
88 }
89
90 @Override
91 public Signature getSignature() {
92 return this.joinpoint.getSignature();
93 }
94
95 @Override
96 public SourceLocation getSourceLocation() {
97 return this.joinpoint.getSourceLocation();
98 }
99
100 @Override
101 public String getKind() {
102 return this.joinpoint.getKind();
103 }
104
105 @Override
106 public JoinPoint.StaticPart getStaticPart() {
107 return this.joinpoint.getStaticPart();
108 }
109
110
111
112
113
114
115 public Object targetize() {
116 final Object target;
117 final Method method = ((MethodSignature) this.joinpoint.getSignature()).getMethod();
118 if (Modifier.isStatic(method.getModifiers())) {
119 target = method.getDeclaringClass();
120 } else {
121 target = this.joinpoint.getTarget();
122 }
123 return target;
124 }
125
126
127
128
129
130
131 public Method currentMethod() {
132 return ((MethodSignature) this.joinpoint.getSignature()).getMethod();
133 }
134 }