package org.restler.spring.mvc.asm; import org.objectweb.asm.*; import java.lang.reflect.Member; import java.util.Map; public class ParameterNameDiscoveringVisitor implements ClassVisitor { private final Class<?> clazz; private final Map<Member, String[]> map; private static final String STATIC_CLASS_INIT = "<clinit>"; public ParameterNameDiscoveringVisitor(Class<?> clazz, Map<Member, String[]> map) { this.clazz = clazz; this.map = map; } @Override public void visit(int i, int i1, String s, String s1, String s2, String[] strings) { } @Override public void visitSource(String s, String s1) { } @Override public void visitOuterClass(String s, String s1, String s2) { } @Override public AnnotationVisitor visitAnnotation(String s, boolean b) { return null; } @Override public void visitAttribute(Attribute attribute) { } @Override public void visitInnerClass(String s, String s1, String s2, int i) { } @Override public FieldVisitor visitField(int i, String s, String s1, String s2, Object o) { return null; } @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if(!(((access & AsmConstants.ACCESS_SYNTHETIC) | (access & AsmConstants.ACCESS_BRIDGE)) > 0) && !STATIC_CLASS_INIT.equals(name)) { return new LocalVariableTableVisitor(clazz, name, desc, map, (access & AsmConstants.ACCESS_STATIC) > 0); } return null; } @Override public void visitEnd() { } }