@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodNode method = ASM.getMethod(cn, name, desc); MethodVisitor mv; for(ModelTransformer transformer : transformers){ if((mv = transformer.transform(cn, cw, method)) != null){ return mv; } } return super.visitMethod(access, name, desc, signature, exceptions); } }
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodNode mn = ASM.getMethod(cn, name, desc); AnnotationNode a = ASM.getAnnotation(mn, Transactional.class); if(null != a) { log.trace(" #transactional method : {}", name); MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); return new TxMethodVisitor(a, mv , access, name, desc); } return super.visitMethod(access, name, desc, signature, exceptions); }
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodNode mn = ASM.getMethod(cn, name, desc); if(!methodBodyOnly && ASM.isStaticInit(mn)) { visitStaticInit = true; MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); return new ClinitMethodVisitor(mv, access, name, desc); } if(isMonitored(mn)) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); return new MonitoredMethodVisitor(type, mn, mv , access, name, desc); } return super.visitMethod(access, name, desc, signature, exceptions); }
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodNode mn = ASM.getMethod(cn, name, desc); if(ASM.isStaticInit(mn)) { visitStaticInit = true; MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); return new ClinitMethodVisitor(mv, access, name, desc); } AopMethod am = isIntercepted(mn); if(null != am) { String newName = name + "$aop"; visitInterceptedMethod(am, newName); return super.visitMethod(access, newName, desc, signature, exceptions); }else{ return super.visitMethod(access, name, desc, signature, exceptions); } }