final class AnnotationWriter extends java.lang.Object implements AnnotationVisitor
AnnotationVisitor that generates annotations in bytecode form.| Modifier and Type | Field and Description | 
|---|---|
| private ByteVector | bvThe annotation values in bytecode form. | 
| private ClassWriter | cwThe class writer to which this annotation must be added. | 
| private boolean | namedtrue if values are named, false otherwise. | 
| (package private) AnnotationWriter | nextNext annotation writer. | 
| private int | offsetWhere the number of values of this annotation must be stored in
  parent. | 
| private ByteVector | parentThe byte vector to be used to store the number of values of this
 annotation. | 
| (package private) AnnotationWriter | prevPrevious annotation writer. | 
| private int | sizeThe number of values in this annotation. | 
| Constructor and Description | 
|---|
| AnnotationWriter(ClassWriter cw,
                boolean named,
                ByteVector bv,
                ByteVector parent,
                int offset)Constructs a new  AnnotationWriter. | 
| Modifier and Type | Method and Description | 
|---|---|
| (package private) int | getSize()Returns the size of this annotation writer list. | 
| (package private) static void | put(AnnotationWriter[] panns,
   ByteVector out)Puts the given annotation lists into the given byte vector. | 
| (package private) void | put(ByteVector out)Puts the annotations of this annotation writer list into the given byte
 vector. | 
| void | visit(java.lang.String name,
     java.lang.Object value)Visits a primitive value of the annotation. | 
| AnnotationVisitor | visitAnnotation(java.lang.String name,
               java.lang.String desc)Visits a nested annotation value of the annotation. | 
| AnnotationVisitor | visitArray(java.lang.String name)Visits an array value of the annotation. | 
| void | visitEnd()Visits the end of the annotation. | 
| void | visitEnum(java.lang.String name,
         java.lang.String desc,
         java.lang.String value)Visits an enumeration value of the annotation. | 
private final ClassWriter cw
private int size
private final boolean named
private final ByteVector bv
private final ByteVector parent
bv.private final int offset
parent.AnnotationWriter next
AnnotationWriter prev
AnnotationWriter(ClassWriter cw, boolean named, ByteVector bv, ByteVector parent, int offset)
AnnotationWriter.cw - the class writer to which this annotation must be added.named - true if values are named, false otherwise.bv - where the annotation values must be stored.parent - where the number of annotation values must be stored.offset - where in parent the number of annotation values must
               be stored.public void visit(java.lang.String name,
         java.lang.Object value)
AnnotationVisitorvisit in interface AnnotationVisitorname - the value name.value - the actual value, whose type must be Byte,
              Boolean, Character, Short,
              Integer, Long, Float, Double,
              String or Type. This value can also be an array
              of byte, boolean, short, char, int, long, float or double values
              (this is equivalent to using visitArray and
              visiting each array element in turn, but is more convenient).public void visitEnum(java.lang.String name,
             java.lang.String desc,
             java.lang.String value)
AnnotationVisitorvisitEnum in interface AnnotationVisitorname - the value name.desc - the class descriptor of the enumeration class.value - the actual enumeration value.public AnnotationVisitor visitAnnotation(java.lang.String name, java.lang.String desc)
AnnotationVisitorvisitAnnotation in interface AnnotationVisitorname - the value name.desc - the class descriptor of the nested annotation class.public AnnotationVisitor visitArray(java.lang.String name)
AnnotationVisitorvisit. This is what
 ClassReader does.visitArray in interface AnnotationVisitorname - the value name.public void visitEnd()
AnnotationVisitorvisitEnd in interface AnnotationVisitorint getSize()
void put(ByteVector out)
out - where the annotations must be put.static void put(AnnotationWriter[] panns, ByteVector out)
panns - an array of annotation writer lists.out - where the annotations must be put.