Example usage for org.objectweb.asm ClassVisitor visitAnnotation

List of usage examples for org.objectweb.asm ClassVisitor visitAnnotation

Introduction

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

Prototype

public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) 

Source Link

Document

Visits an annotation of the class.

Usage

From source file:com.facebook.presto.byteCode.AnnotationDefinition.java

License:Apache License

public void visitClassAnnotation(ClassVisitor visitor) {
    AnnotationVisitor annotationVisitor = visitor.visitAnnotation(type.getType(), true);
    visit(annotationVisitor);/*from   w w  w  .  jav a 2  s. c  om*/
    annotationVisitor.visitEnd();
}

From source file:com.google.code.nanorm.internal.introspect.asm.MapperBuilder.java

License:Apache License

/**
 * Copy annotations from annotated element to given class/method definition.
 * @param element annotated element/* w  w w .jav  a 2  s  .com*/
 * @param classVisitor class visitor or {@literal null}.
 * @param methodVisitor method visitor or {@literal null}.
 */
private static void copyAnnotations(AnnotatedElement element, ClassVisitor classVisitor,
        MethodVisitor methodVisitor) {
    final Annotation[] annotations = element.getDeclaredAnnotations();
    if (annotations != null) {
        for (Annotation annotation : annotations) {
            String desc = Type.getDescriptor(annotation.annotationType());

            final AnnotationVisitor visitor;
            if (classVisitor != null) {
                visitor = classVisitor.visitAnnotation(desc, true);
            } else {
                visitor = methodVisitor.visitAnnotation(desc, true);
            }
            visitAnnotation(visitor, annotation);
        }
    }
}

From source file:com.google.template.soy.jbcsrc.AnnotationRef.java

License:Apache License

/**
 * Writes the given annotation to the visitor.
 *///from w  ww .  j a  v a 2 s. c o  m
void write(T instance, ClassVisitor visitor) {
    doWrite(instance, visitor.visitAnnotation(typeDescriptor, isRuntimeVisible));
}

From source file:com.google.template.soy.jbcsrc.restricted.AnnotationRef.java

License:Apache License

/** Writes the given annotation to the visitor. */
public void write(T instance, ClassVisitor visitor) {
    doWrite(instance, visitor.visitAnnotation(typeDescriptor, isRuntimeVisible));
}

From source file:com.googlecode.ddom.weaver.asm.ClassVisitorTee.java

License:Apache License

public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
    AnnotationVisitor result = null;//from   w  ww  .  j ava 2s.  c o  m
    for (ClassVisitor visitor : visitors) {
        result = AnnotationVisitorTee.mergeVisitors(result, visitor.visitAnnotation(desc, visible));
    }
    return result;
}

From source file:com.googlecode.dex2jar.v3.AnnotationNode.java

License:Apache License

public void accept(ClassVisitor cv) {
    AnnotationVisitor av = cv.visitAnnotation(type, visible);
    accept(items, av);
    av.visitEnd();

}

From source file:erjang.beam.CompilerVisitor.java

License:Apache License

private void add_module_annotation(ClassVisitor cv) {

    AnnotationVisitor av = cv.visitAnnotation(MODULE_ANN_TYPE.getDescriptor(), true);
    av.visit("value", getModuleName());

    av.visitEnd();/*from ww w.  j  a  v a 2 s.  c  om*/
}

From source file:kilim.analysis.ClassWeaver.java

License:Open Source License

private void accept(final ClassVisitor cv) {
    ClassFlow cf = classFlow;/*  w  ww  . j  a  v a 2s .com*/
    // visits header
    String[] interfaces = toStringArray(cf.interfaces);
    cv.visit(cf.version, cf.access, cf.name, cf.signature, cf.superName, interfaces);
    // visits source
    if (cf.sourceFile != null || cf.sourceDebug != null) {
        cv.visitSource(cf.sourceFile, cf.sourceDebug);
    }
    // visits outer class
    if (cf.outerClass != null) {
        cv.visitOuterClass(cf.outerClass, cf.outerMethod, cf.outerMethodDesc);
    }
    // visits attributes and annotations
    int i, n;
    AnnotationNode an;
    n = cf.visibleAnnotations == null ? 0 : cf.visibleAnnotations.size();
    for (i = 0; i < n; ++i) {
        an = (AnnotationNode) cf.visibleAnnotations.get(i);
        an.accept(cv.visitAnnotation(an.desc, true));
    }
    n = cf.invisibleAnnotations == null ? 0 : cf.invisibleAnnotations.size();
    for (i = 0; i < n; ++i) {
        an = (AnnotationNode) cf.invisibleAnnotations.get(i);
        an.accept(cv.visitAnnotation(an.desc, false));
    }

    n = cf.attrs == null ? 0 : cf.attrs.size();
    for (i = 0; i < n; ++i) {
        cv.visitAttribute((Attribute) cf.attrs.get(i));
    }
    // visits inner classes
    for (i = 0; i < cf.innerClasses.size(); ++i) {
        ((InnerClassNode) cf.innerClasses.get(i)).accept(cv);
    }
    // visits fields
    for (i = 0; i < cf.fields.size(); ++i) {
        ((FieldNode) cf.fields.get(i)).accept(cv);
    }
    /*
     * Mark this class as "processed" by adding a dummy field, so that
     * we don't weave an already woven file
     */
    cv.visitField(ACC_PUBLIC | ACC_STATIC | ACC_FINAL, WOVEN_FIELD, "Z", "Z", Boolean.TRUE);
    // visits methods
    for (i = 0; i < cf.methods.size(); ++i) {
        MethodFlow m = (MethodFlow) cf.methods.get(i);
        if (needsWeaving(m)) {
            MethodWeaver mw = new MethodWeaver(this, m);
            mw.accept(cv);
            mw.makeNotWovenMethod(cv, m);
        } else {
            m.accept(cv);
        }
    }
    // visits end
    cv.visitEnd();
}

From source file:net.enilink.composition.asm.meta.ClassInfo.java

License:Open Source License

/**
 * Copies annotations of this class./*from w  ww.j  a va2 s . c  o m*/
 * 
 * @param cv
 *            a class visitor.
 */
public void copyAnnotations(final ClassVisitor cv) {
    // visits annotations
    int i, n;
    n = visibleAnnotations == null ? 0 : visibleAnnotations.size();
    for (i = 0; i < n; ++i) {
        AnnotationNode an = (AnnotationNode) visibleAnnotations.get(i);
        an.accept(cv.visitAnnotation(an.desc, true));
    }
    n = invisibleAnnotations == null ? 0 : invisibleAnnotations.size();
    for (i = 0; i < n; ++i) {
        AnnotationNode an = (AnnotationNode) invisibleAnnotations.get(i);
        an.accept(cv.visitAnnotation(an.desc, false));
    }
}

From source file:org.adjective.stout.writer.ByteCodeWriter.java

License:Apache License

private void writeAnnotation(ClassVisitor cv, AnnotationDescriptor annotation) {
    AnnotationVisitor av = cv.visitAnnotation(Type.getDescriptor(annotation.getType()), annotation.isRuntime());
    this.processAnnotation(annotation, av);
}