1
2
3
4
5
6 package mockit.asm.methods;
7
8 import edu.umd.cs.findbugs.annotations.NonNull;
9 import edu.umd.cs.findbugs.annotations.Nullable;
10
11 import mockit.asm.annotations.AnnotationVisitor;
12 import mockit.asm.controlFlow.Label;
13 import mockit.asm.util.MethodHandle;
14
15 import org.checkerframework.checker.index.qual.NonNegative;
16
17
18
19
20 public class WrappingMethodVisitor extends MethodVisitor {
21
22
23
24 @NonNull
25 protected final MethodWriter mw;
26
27
28
29
30
31
32
33 protected WrappingMethodVisitor(@NonNull MethodWriter mw) {
34 this.mw = mw;
35 }
36
37 @Nullable
38 @Override
39 public AnnotationVisitor visitAnnotation(@NonNull String desc) {
40 return mw.visitAnnotation(desc);
41 }
42
43 @Override
44 public final AnnotationVisitor visitParameterAnnotation(@NonNegative int parameter, @NonNull String desc) {
45 return mw.visitParameterAnnotation(parameter, desc);
46 }
47
48 @Override
49 public void visitInsn(int opcode) {
50 mw.visitInsn(opcode);
51 }
52
53 @Override
54 public void visitIntInsn(int opcode, int operand) {
55 mw.visitIntInsn(opcode, operand);
56 }
57
58 @Override
59 public void visitVarInsn(int opcode, @NonNegative int varIndex) {
60 mw.visitVarInsn(opcode, varIndex);
61 }
62
63 @Override
64 public void visitTypeInsn(int opcode, @NonNull String typeDesc) {
65 mw.visitTypeInsn(opcode, typeDesc);
66 }
67
68 @Override
69 public void visitFieldInsn(int opcode, @NonNull String owner, @NonNull String name, @NonNull String desc) {
70 mw.visitFieldInsn(opcode, owner, name, desc);
71 }
72
73 @Override
74 public void visitMethodInsn(int opcode, @NonNull String owner, @NonNull String name, @NonNull String desc,
75 boolean itf) {
76 mw.visitMethodInsn(opcode, owner, name, desc, itf);
77 }
78
79 @Override
80 public final void visitInvokeDynamicInsn(@NonNull String name, @NonNull String desc, @NonNull MethodHandle bsm,
81 @NonNull Object... bsmArgs) {
82 mw.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
83 }
84
85 @Override
86 public void visitJumpInsn(int opcode, @NonNull Label label) {
87 mw.visitJumpInsn(opcode, label);
88 }
89
90 @Override
91 public void visitLabel(@NonNull Label label) {
92 mw.visitLabel(label);
93 }
94
95 @Override
96 public void visitLdcInsn(@NonNull Object cst) {
97 mw.visitLdcInsn(cst);
98 }
99
100 @Override
101 public void visitIincInsn(@NonNegative int varIndex, int increment) {
102 mw.visitIincInsn(varIndex, increment);
103 }
104
105 @Override
106 public void visitTableSwitchInsn(int min, int max, @NonNull Label dflt, @NonNull Label... labels) {
107 mw.visitTableSwitchInsn(min, max, dflt, labels);
108 }
109
110 @Override
111 public void visitLookupSwitchInsn(@NonNull Label dflt, @NonNull int[] keys, @NonNull Label[] labels) {
112 mw.visitLookupSwitchInsn(dflt, keys, labels);
113 }
114
115 @Override
116 public void visitMultiANewArrayInsn(@NonNull String desc, @NonNegative int dims) {
117 mw.visitMultiANewArrayInsn(desc, dims);
118 }
119
120 @Override
121 public void visitTryCatchBlock(@NonNull Label start, @NonNull Label end, @NonNull Label handler,
122 @Nullable String type) {
123 mw.visitTryCatchBlock(start, end, handler, type);
124 }
125
126 @Override
127 public void visitLocalVariable(@NonNull String name, @NonNull String desc, String signature, @NonNull Label start,
128 @NonNull Label end, @NonNegative int index) {
129 mw.visitLocalVariable(name, desc, signature, start, end, index);
130 }
131
132 @Override
133 public void visitLineNumber(@NonNegative int line, @NonNull Label start) {
134 mw.visitLineNumber(line, start);
135 }
136
137 @Override
138 public void visitMaxStack(@NonNegative int maxStack) {
139 mw.visitMaxStack(maxStack);
140 }
141 }