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