package org.deuce.transform.asm.method;
import org.deuce.objectweb.asm.AnnotationVisitor;
public class MethodAnnotationVisitor implements AnnotationVisitor {
private final AnnotationVisitor originalVisitor;
private final AnnotationVisitor copyVisitor;
public MethodAnnotationVisitor( AnnotationVisitor originalVisitor, AnnotationVisitor copyVisitor) {
this.originalVisitor = originalVisitor;
this.copyVisitor = copyVisitor;
}
public void visit(String name, Object value) {
originalVisitor.visit(name, value);
copyVisitor.visit(name, value);
}
public AnnotationVisitor visitAnnotation(String name, String desc) {
return new MethodAnnotationVisitor( originalVisitor.visitArray(name),
copyVisitor.visitArray(name));
}
public AnnotationVisitor visitArray(String name) {
return new MethodAnnotationVisitor( originalVisitor.visitArray(name),
copyVisitor.visitArray(name));
}
public void visitEnd() {
originalVisitor.visitEnd();
copyVisitor.visitEnd();
}
public void visitEnum(String name, String desc, String value) {
originalVisitor.visitEnum(name, desc, value);
copyVisitor.visitEnum(name, desc, value);
}
}