61
62 import java.util.Stack;
63
64 import jdk.internal.org.objectweb.asm.Opcodes;
65 import jdk.internal.org.objectweb.asm.signature.SignatureVisitor;
66
67 /**
68 * A {@link SignatureVisitor} adapter for type mapping.
69 *
70 * @author Eugene Kuleshov
71 */
72 public class SignatureRemapper extends SignatureVisitor {
73
74 private final SignatureVisitor v;
75
76 private final Remapper remapper;
77
78 private Stack<String> classNames = new Stack<String>();
79
80 public SignatureRemapper(final SignatureVisitor v, final Remapper remapper) {
81 this(Opcodes.ASM5, v, remapper);
82 }
83
84 protected SignatureRemapper(final int api, final SignatureVisitor v,
85 final Remapper remapper) {
86 super(api);
87 this.v = v;
88 this.remapper = remapper;
89 }
90
91 @Override
92 public void visitClassType(String name) {
93 classNames.push(name);
94 v.visitClassType(remapper.mapType(name));
95 }
96
97 @Override
98 public void visitInnerClassType(String name) {
99 String outerClassName = classNames.pop();
100 String className = outerClassName + '$' + name;
101 classNames.push(className);
|
61
62 import java.util.Stack;
63
64 import jdk.internal.org.objectweb.asm.Opcodes;
65 import jdk.internal.org.objectweb.asm.signature.SignatureVisitor;
66
67 /**
68 * A {@link SignatureVisitor} adapter for type mapping.
69 *
70 * @author Eugene Kuleshov
71 */
72 public class SignatureRemapper extends SignatureVisitor {
73
74 private final SignatureVisitor v;
75
76 private final Remapper remapper;
77
78 private Stack<String> classNames = new Stack<String>();
79
80 public SignatureRemapper(final SignatureVisitor v, final Remapper remapper) {
81 this(Opcodes.ASM6, v, remapper);
82 }
83
84 protected SignatureRemapper(final int api, final SignatureVisitor v,
85 final Remapper remapper) {
86 super(api);
87 this.v = v;
88 this.remapper = remapper;
89 }
90
91 @Override
92 public void visitClassType(String name) {
93 classNames.push(name);
94 v.visitClassType(remapper.mapType(name));
95 }
96
97 @Override
98 public void visitInnerClassType(String name) {
99 String outerClassName = classNames.pop();
100 String className = outerClassName + '$' + name;
101 classNames.push(className);
|