List of usage examples for org.objectweb.asm MethodVisitor MethodVisitor
public MethodVisitor(final int api)
From source file:org.wildfly.swarm.fractions.ArquillianClientAnnotationSeekingClassVisitor.java
License:Apache License
@Override public MethodVisitor visitMethod(final int __, final String ___, final String desc, final String signature, final String[] exceptions) { return new MethodVisitor(Opcodes.ASM5) { @Override// w ww . j a va2s .com public AnnotationVisitor visitAnnotation(final String desc, final boolean __) { Type type = Type.getType(desc); String className = type.getInternalName(); if (className.equals(DEPLOYMENT_ANNOTATION)) { containerCounter++; return new ArquillianAnnotationVisitor(); } if (className.equals(RUN_AS_CLIENT_ANNOTATION)) { clientCounter++; } return null; } }; }
From source file:rubah.bytecode.transformers.FailFastMethodTransformer.java
License:Open Source License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (Modifier.isAbstract(access)) { // Do not install fail fast code on abstract methods return super.visitMethod(access, name, desc, signature, exceptions); }//from w w w . j a v a2 s . c om MethodVisitor mv = this.cv.visitMethod(access, name, desc, signature, exceptions); mv.visitCode(); mv.visitTypeInsn(NEW, "java/lang/Error"); mv.visitInsn(DUP); mv.visitLdcInsn("Fail fast"); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Error", "<init>", "(Ljava/lang/String;)V", false); mv.visitInsn(ATHROW); mv.visitMaxs(3, 1); mv.visitEnd(); return new MethodVisitor(ASM5) { }; }
From source file:se.eris.functional.nested.NestedAnnotatedInstrumenterTest.java
License:Apache License
@NotNull private List<String> getStringConstants(final ClassReader cr, final String methodName) { final List<String> strings = new ArrayList<>(); cr.accept(new ClassVisitor(AsmUtils.ASM_OPCODES_VERSION) { @Override//ww w . j ava2s . co m public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature, final String[] exceptions) { if (name.equals(methodName)) { return new MethodVisitor(AsmUtils.ASM_OPCODES_VERSION) { @Override public void visitLdcInsn(final Object cst) { if (cst instanceof String) { strings.add(desc + ":" + cst); } } }; } return super.visitMethod(access, name, desc, signature, exceptions); } }, 0); return strings; }
From source file:sonia.legman.maven.MethodAnnotationClassVisitor.java
License:Apache License
/** * Method description/*w w w. java 2 s . c o m*/ * * * @param access * @param methodName * @param desc * @param signature * @param exceptions * * @return */ @Override public MethodVisitor visitMethod(int access, final String methodName, String desc, String signature, String[] exceptions) { return new MethodVisitor(api) { @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { String annotation = transformDescToClassName(desc); if (annotations.contains(annotation)) { methodAnnotationHandler.handleMethodAnnotation(className, methodName, annotation); } return super.visitAnnotation(desc, visible); } }; }