final class AnnotationWriter extends AnnotationVisitor
AnnotationVisitor
that generates annotations in bytecode form.Modifier and Type | Field and Description |
---|---|
(package private) AnnotationWriter |
next
Next annotation writer.
|
(package private) AnnotationWriter |
prev
Previous annotation writer.
|
api, av
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,
int off,
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.
|
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)
AnnotationVisitor
visit
in class AnnotationVisitor
name
- the value name.value
- the actual value, whose type must be Byte
,
Boolean
, Character
, Short
, Integer
, Long
, Float
, Double
, String
or
Type
or OBJECT or ARRAY sort. 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)
AnnotationVisitor
visitEnum
in class AnnotationVisitor
name
- 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)
AnnotationVisitor
visitAnnotation
in class AnnotationVisitor
name
- the value name.desc
- the class descriptor of the nested annotation class.public AnnotationVisitor visitArray(java.lang.String name)
AnnotationVisitor
visit
. This is what
ClassReader
does.visitArray
in class AnnotationVisitor
name
- the value name.public void visitEnd()
AnnotationVisitor
visitEnd
in class AnnotationVisitor
int getSize()
void put(ByteVector out)
out
- where the annotations must be put.static void put(AnnotationWriter[] panns, int off, ByteVector out)
panns
- an array of annotation writer lists.off
- index of the first annotation to be written.out
- where the annotations must be put.Copyright (c) 2004-2012 Oracle. All rights reserved.