Package javassist.bytecode.annotation
Class AnnotationsWriter
- java.lang.Object
-
- javassist.bytecode.annotation.AnnotationsWriter
-
- Direct Known Subclasses:
TypeAnnotationsWriter
public class AnnotationsWriter extends java.lang.Object
A convenience class for constructing a..Annotations_attribute
. See the source code of theAnnotationsAttribute.Copier
class.The following code snippet is an example of use of this class:
ConstPool pool = ...; output = new ByteArrayOutputStream(); writer = new AnnotationsWriter(output, pool); writer.numAnnotations(1); writer.annotation("Author", 2); writer.memberValuePair("name"); // element_value_pair writer.constValueIndex("chiba"); writer.memberValuePair("address"); // element_value_pair writer.constValueIndex("tokyo"); writer.close(); byte[] attribute_info = output.toByteArray(); AnnotationsAttribute anno = new AnnotationsAttribute(pool, AnnotationsAttribute.visibleTag, attribute_info);
The code snippet above generates the annotation attribute corresponding to this annotation:
@Author(name = "chiba", address = "tokyo")
-
-
Constructor Summary
Constructors Constructor Description AnnotationsWriter(java.io.OutputStream os, ConstPool cp)
Constructs with the given output stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
annotation(int typeIndex, int numMemberValuePairs)
Writesannotation
.void
annotation(java.lang.String type, int numMemberValuePairs)
Writesannotation
.void
annotationValue()
Writestag
andannotation_value
inelement_value
.void
arrayValue(int numValues)
Writestag
andarray_value
inelement_value
.void
classInfoIndex(int index)
Writestag
andclass_info_index
inelement_value
.void
classInfoIndex(java.lang.String name)
Writestag
andclass_info_index
inelement_value
.void
close()
Closes the output stream.void
constValueIndex(boolean value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(byte value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(char value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(double value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(float value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(int value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(int tag, int index)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(long value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(short value)
Writestag
andconst_value_index
inelement_value
.void
constValueIndex(java.lang.String value)
Writestag
andconst_value_index
inelement_value
.void
enumConstValue(int typeNameIndex, int constNameIndex)
Writestag
andenum_const_value
inelement_value
.void
enumConstValue(java.lang.String typeName, java.lang.String constName)
Writestag
andenum_const_value
inelement_value
.ConstPool
getConstPool()
Obtains the constant pool given to the constructor.void
memberValuePair(int memberNameIndex)
Writes an element of aelement_value_pairs
array inannotation
.void
memberValuePair(java.lang.String memberName)
Writes an element of aelement_value_pairs
array inannotation
.void
numAnnotations(int num)
Writesnum_annotations
inRuntime(In)VisibleAnnotations_attribute
.void
numParameters(int num)
Writesnum_parameters
inRuntime(In)VisibleParameterAnnotations_attribute
.
-
-
-
Constructor Detail
-
AnnotationsWriter
public AnnotationsWriter(java.io.OutputStream os, ConstPool cp)
Constructs with the given output stream.- Parameters:
os
- the output stream.cp
- the constant pool.
-
-
Method Detail
-
getConstPool
public ConstPool getConstPool()
Obtains the constant pool given to the constructor.
-
close
public void close() throws java.io.IOException
Closes the output stream.- Throws:
java.io.IOException
-
numParameters
public void numParameters(int num) throws java.io.IOException
Writesnum_parameters
inRuntime(In)VisibleParameterAnnotations_attribute
. This method must be followed bynum
calls tonumAnnotations()
.- Throws:
java.io.IOException
-
numAnnotations
public void numAnnotations(int num) throws java.io.IOException
Writesnum_annotations
inRuntime(In)VisibleAnnotations_attribute
. This method must be followed bynum
calls toannotation()
.- Throws:
java.io.IOException
-
annotation
public void annotation(java.lang.String type, int numMemberValuePairs) throws java.io.IOException
Writesannotation
. This method must be followed bynumMemberValuePairs
calls tomemberValuePair()
.- Parameters:
type
- the annotation interface name.numMemberValuePairs
-num_element_value_pairs
inannotation
.- Throws:
java.io.IOException
-
annotation
public void annotation(int typeIndex, int numMemberValuePairs) throws java.io.IOException
Writesannotation
. This method must be followed bynumMemberValuePairs
calls tomemberValuePair()
.- Parameters:
typeIndex
-type_index
inannotation
.numMemberValuePairs
-num_element_value_pairs
inannotation
.- Throws:
java.io.IOException
-
memberValuePair
public void memberValuePair(java.lang.String memberName) throws java.io.IOException
Writes an element of aelement_value_pairs
array inannotation
. This method must be followed by a call toconstValueIndex()
,enumConstValue()
, etc.- Parameters:
memberName
- the element name.- Throws:
java.io.IOException
-
memberValuePair
public void memberValuePair(int memberNameIndex) throws java.io.IOException
Writes an element of aelement_value_pairs
array inannotation
. This method must be followed by a call toconstValueIndex()
,enumConstValue()
, etc.- Parameters:
memberNameIndex
-element_name_index
inelement_value_pairs
array.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(boolean value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(byte value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(char value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(short value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(int value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(long value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(float value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(double value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(java.lang.String value) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
value
- the constant value.- Throws:
java.io.IOException
-
constValueIndex
public void constValueIndex(int tag, int index) throws java.io.IOException
Writestag
andconst_value_index
inelement_value
.- Parameters:
tag
-tag
inelement_value
.index
-const_value_index
inelement_value
.- Throws:
java.io.IOException
-
enumConstValue
public void enumConstValue(java.lang.String typeName, java.lang.String constName) throws java.io.IOException
Writestag
andenum_const_value
inelement_value
.- Parameters:
typeName
- the type name of the enum constant.constName
- the simple name of the enum constant.- Throws:
java.io.IOException
-
enumConstValue
public void enumConstValue(int typeNameIndex, int constNameIndex) throws java.io.IOException
Writestag
andenum_const_value
inelement_value
.- Parameters:
typeNameIndex
-type_name_index
inelement_value
.constNameIndex
-const_name_index
inelement_value
.- Throws:
java.io.IOException
-
classInfoIndex
public void classInfoIndex(java.lang.String name) throws java.io.IOException
Writestag
andclass_info_index
inelement_value
.- Parameters:
name
- the class name.- Throws:
java.io.IOException
-
classInfoIndex
public void classInfoIndex(int index) throws java.io.IOException
Writestag
andclass_info_index
inelement_value
.- Parameters:
index
-class_info_index
- Throws:
java.io.IOException
-
annotationValue
public void annotationValue() throws java.io.IOException
Writestag
andannotation_value
inelement_value
. This method must be followed by a call toannotation()
.- Throws:
java.io.IOException
-
arrayValue
public void arrayValue(int numValues) throws java.io.IOException
Writestag
andarray_value
inelement_value
. This method must be followed bynumValues
calls toconstValueIndex()
,enumConstValue()
, etc.- Parameters:
numValues
-num_values
inarray_value
.- Throws:
java.io.IOException
-
-