1 16 package net.sf.cglib.transform; 17 18 import org.objectweb.asm.*; 19 20 public class MethodFilterTransformer extends AbstractClassTransformer { 21 private MethodFilter filter; 22 private ClassTransformer pass; 23 private ClassVisitor direct; 24 25 public MethodFilterTransformer(MethodFilter filter, ClassTransformer pass) { 26 this.filter = filter; 27 this.pass = pass; 28 super.setTarget(pass); 29 } 30 31 public MethodVisitor visitMethod(int access, 32 String name, 33 String desc, 34 String signature, 35 String [] exceptions) { 36 return (filter.accept(access, name, desc, signature, exceptions) ? pass : direct).visitMethod(access, name, desc, signature, exceptions); 37 } 38 39 public void setTarget(ClassVisitor target) { 40 pass.setTarget(target); 41 direct = target; 42 } 43 } 44 | Popular Tags |