Example usage for org.objectweb.asm ClassVisitor visitAttribute

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

Introduction

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

Prototype

public void visitAttribute(final Attribute attribute) 

Source Link

Document

Visits a non standard attribute of the class.

Usage

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

License:Apache License

public void visitAttribute(Attribute attr) {
    for (ClassVisitor visitor : visitors) {
        visitor.visitAttribute(attr);
    }
}

From source file:kilim.analysis.ClassWeaver.java

License:Open Source License

private void accept(final ClassVisitor cv) {
    ClassFlow cf = classFlow;//from w ww.  ja va 2s .  c  o  m
    // 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:org.eclipse.sisu.scanners.QualifiedScanningTest.java

License:Open Source License

public void testEmptyMethods() {
    final AnnotationVisitor emptyAnnotationVisitor = new EmptyAnnotationVisitor();

    emptyAnnotationVisitor.visit(null, null);
    emptyAnnotationVisitor.visitEnum(null, null, null);
    emptyAnnotationVisitor.visitAnnotation(null, null);
    emptyAnnotationVisitor.visitArray(null);
    emptyAnnotationVisitor.visitEnd();//w  w w.  j a va  2 s . c  o m

    final ClassVisitor emptyClassVisitor = new EmptyClassVisitor();

    emptyClassVisitor.visit(0, 0, null, null, null, null);
    emptyClassVisitor.visitAnnotation(null, false);
    emptyClassVisitor.visitAttribute(null);
    emptyClassVisitor.visitSource(null, null);
    emptyClassVisitor.visitEnd();
}

From source file:org.jephyr.common.agent.DelegationClassAdapter.java

License:Open Source License

@Override
public void visitAttribute(Attribute attr) {
    ClassVisitor cv1 = delegate();
    if (cv1 != null) {
        cv1.visitAttribute(attr);
    }//from  ww  w  .  j  av  a 2s .  c o m
}

From source file:org.springframework.migrationanalyzer.contributions.bytecode.DelegatingClassVisitor.java

License:Apache License

@Override
public void visitAttribute(Attribute attr) {
    for (ClassVisitor delegate : this.delegates) {
        delegate.visitAttribute(attr);
    }/*from w  w w .ja va  2  s  . com*/
}