001 package net.sourceforge.retroweaver;
002
003 import org.objectweb.asm.ClassAdapter;
004 import org.objectweb.asm.ClassVisitor;
005 import org.objectweb.asm.FieldVisitor;
006 import org.objectweb.asm.Label;
007 import org.objectweb.asm.MethodAdapter;
008 import org.objectweb.asm.MethodVisitor;
009
010 public class SignatureStripper extends ClassAdapter {
011
012 public SignatureStripper(ClassVisitor cv) {
013 super(cv);
014 }
015
016 public void visit(
017 final int version,
018 final int access,
019 final String name,
020 final String signature,
021 final String superName,
022 final String[] interfaces)
023 {
024 super.visit(version, access, name, null, superName, interfaces);
025 }
026
027 public FieldVisitor visitField(
028 final int access,
029 final String name,
030 final String desc,
031 final String signature,
032 final Object value)
033 {
034 return super.visitField(access, name, desc, null, value);
035 }
036
037 public MethodVisitor visitMethod(
038 final int access,
039 final String name,
040 final String desc,
041 final String signature,
042 final String[] exceptions)
043 {
044 MethodVisitor mv = super.visitMethod(access, name, desc, null, exceptions);
045 return mv == null ? null : new MethodSignatureStripper(mv);
046 }
047
048 static class MethodSignatureStripper extends MethodAdapter {
049 MethodSignatureStripper(MethodVisitor mv) {
050 super(mv);
051 }
052 public void visitLocalVariable(
053 final String name,
054 final String desc,
055 final String signature,
056 final Label start,
057 final Label end,
058 final int index)
059 {
060 super.visitLocalVariable(name, desc, null, start, end, index);
061 }
062
063 }
064
065 }