All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.eg.agent.compile.visitor.EGAnnotationClassVisitor Maven / Gradle / Ivy

package com.eg.agent.compile.visitor;

import com.eg.agent.compile.InstrumentationContext;

/**
 * @author janakiraman.k
 *
 */

import com.eg.agent.compile.EGLogger;
import com.eg.objectweb.asm.ClassAdapter;
import com.eg.objectweb.asm.ClassVisitor;

import java.text.MessageFormat;

public class EGAnnotationClassVisitor extends ClassAdapter {
    private final InstrumentationContext context;
    private final EGLogger log;

    public EGAnnotationClassVisitor(ClassVisitor cv, InstrumentationContext context, EGLogger log) {
        super(cv);
        this.context = context;
        this.log = log;
    }

    public void visitEnd() {
        if (this.context.isClassModified()) {
            this.context.addUniqueTag("Lcom/eg/agent/android/MarkInstrumented;");
            super.visitAnnotation("Lcom/eg/agent/android/MarkInstrumented;", false);
            this.log.info(MessageFormat.format("[{0}] tagging as instrumented", new Object[]{this.context.getFriendlyClassName()}));
        }

        super.visitEnd();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy