Example usage for org.objectweb.asm AnnotationVisitor AnnotationVisitor

List of usage examples for org.objectweb.asm AnnotationVisitor AnnotationVisitor

Introduction

In this page you can find the example usage for org.objectweb.asm AnnotationVisitor AnnotationVisitor.

Prototype

AnnotationVisitor

Source Link

Usage

From source file:org.boretti.drools.integration.drools5.DroolsAbstractMethodVisitor.java

License:Open Source License

@Override
public AnnotationVisitor visitAnnotation(String name, boolean arg1) {
    final AnnotationVisitor p = super.visitAnnotation(name, arg1);
    if (Type.getType(name).getClassName().equals(Type.getType(DroolsPreCondition.class).getClassName())) {
        havePreCondition = true;//from  www .j  a v  a2  s.c o m
        return new AnnotationVisitor() {

            @Override
            public void visit(String name, Object value) {
                if (name.equals("resourceName"))
                    preResourceName = (String) value;
                else if (name.equals("error"))
                    preError = (Type) value;
            }

            @Override
            public AnnotationVisitor visitAnnotation(String arg0, String arg1) {
                return this;
            }

            @Override
            public AnnotationVisitor visitArray(String name) {
                return this;
            }

            @Override
            public void visitEnd() {
                p.visitEnd();
            }

            @Override
            public void visitEnum(String name, String desc, String value) {
                if (name.equals("type"))
                    preType = value;
            }

        };
    } else if (Type.getType(name).getClassName()
            .equals(Type.getType(DroolsPostCondition.class).getClassName())) {
        havePostCondition = true;
        return new AnnotationVisitor() {

            @Override
            public void visit(String name, Object value) {
                if (name.equals("resourceName"))
                    postResourceName = (String) value;
                else if (name.equals("error"))
                    postError = (Type) value;
                else if (name.equals("onException"))
                    postOnException = (Boolean) value;
            }

            @Override
            public AnnotationVisitor visitAnnotation(String arg0, String arg1) {
                return this;
            }

            @Override
            public AnnotationVisitor visitArray(String name) {
                return this;
            }

            @Override
            public void visitEnd() {
                p.visitEnd();
            }

            @Override
            public void visitEnum(String name, String desc, String value) {
                if (name.equals("type"))
                    postType = value;
            }

        };
    }
    return p;
}

From source file:org.glassfish.pfl.tf.tools.enhancer.TFEnhanceAdapter.java

License:Open Source License

@Override
public AnnotationVisitor visitAnnotation(String desc, boolean isVisible) {
    if (desc.equals(TFENHANCED_ANNO_DESC)) {
        // Consume the TFEnhanced annotation here.  We'll write out a new
        // one above.
        return new AnnotationVisitor() {
            public void visit(String name, Object value) {
            }/*  ww w.j a v a 2  s . c om*/

            public void visitEnum(String name, String desc, String value) {
                if (name.equals("stage")) {
                    present[0] = Enum.valueOf(TraceEnhanceLevel.class, value);
                }
            }

            public AnnotationVisitor visitAnnotation(String name, String desc) {

                return null;
            }

            public AnnotationVisitor visitArray(String name) {
                return null;
            }

            public void visitEnd() {
            }
        };
    } else {
        final AnnotationVisitor av = super.visitAnnotation(desc, isVisible);
        return av;
    }
}