org.objectweb.asm.attrs
Class RuntimeInvisibleAnnotations
java.lang.Object
org.objectweb.asm.Attribute
org.objectweb.asm.attrs.RuntimeInvisibleAnnotations
- Direct Known Subclasses:
- ASMRuntimeInvisibleAnnotations
public class RuntimeInvisibleAnnotations
- extends Attribute
The RuntimeInvisibleAnnotations attribute is similar to the
RuntimeVisibleAnnotations attribute, except that the annotations represented by
a RuntimeInvisibleAnnotations attribute must not be made available for return
by reflective APIs, unless the JVM has been instructed to retain these
annotations via some implementation-specific mechanism such as a command line
flag. In the absence of such instructions, the JVM ignores this attribute.
The RuntimeInvisibleAnnotations attribute is a variable length attribute in the
attributes table of the ClassFile, field_info, and method_info structures. The
RuntimeInvisibleAnnotations attribute records runtime-invisible Java
programming language annotations on the corresponding class, method, or field.
Each ClassFile, field_info, and method_info structure may contain at most one
RuntimeInvisibleAnnotations attribute, which records all the runtime-invisible
Java programming language annotations on the corresponding program element.
The RuntimeInvisibleAnnotations attribute has the following format:
RuntimeInvisibleAnnotations_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 num_annotations;
annotation annotations[num_annotations];
}
The items of the RuntimeInvisibleAnnotations structure are as follows:
- attribute_name_index
- The value of the attribute_name_index item must be a valid index into the
constant_pool table. The constant_pool entry at that index must be a
CONSTANT_Utf8_info structure representing the string
"RuntimeInvisibleAnnotations".
- attribute_length
- The value of the attribute_length item indicates the length of the
attribute, excluding the initial six bytes. The value of the
attribute_length item is thus dependent on the number of runtime-invisible
annotations represented by the structure, and their values.
- num_annotations
- The value of the num_annotations item gives the number of runtime-invisible
annotations represented by the structure. Note that a maximum of 65535
runtime-invisible Java programming language annotations may be directly
attached to a program element.
- annotations
- Each value of the annotations table represents a single runtime-invisible
annotation
on a program element.
- Author:
- Eugene Kuleshov
- See Also:
- JSR 175 : A Metadata
Facility for the Java Programming Language
Method Summary |
protected Attribute |
read(ClassReader cr,
int off,
int len,
char[] buf,
int codeOff,
Label[] labels)
Reads a type attribute. |
String |
toString()
Returns value in the format described in JSR-175 for Java source code. |
protected ByteVector |
write(ClassWriter cw,
byte[] code,
int len,
int maxStack,
int maxLocals)
Returns the byte array form of this attribute. |
annotations
public List annotations
List
of Annotation
.
RuntimeInvisibleAnnotations
public RuntimeInvisibleAnnotations()
read
protected Attribute read(ClassReader cr,
int off,
int len,
char[] buf,
int codeOff,
Label[] labels)
- Description copied from class:
Attribute
- Reads a
type
attribute. This method must return a new
Attribute
object, of type type
, corresponding to the
len bytes starting at the given offset, in the given class reader.
- Overrides:
read
in class Attribute
- Parameters:
cr
- the class that contains the attribute to be read.off
- index of the first byte of the attribute's content in cr.b
. The 6 attribute header bytes, containing the type
and the length of the attribute, are not taken into account here.len
- the length of the attribute's content.buf
- buffer to be used to call readUTF8
,
readClass
or readConst
.codeOff
- index of the first byte of code's attribute content in
cr.b
, or -1 if the attribute to be read is not a
code attribute. The 6 attribute header bytes, containing the type and
the length of the attribute, are not taken into account here.labels
- the labels of the method's code, or null if the
attribute to be read is not a code attribute.
- Returns:
- a new
Attribute
object corresponding to the given
bytes.
write
protected ByteVector write(ClassWriter cw,
byte[] code,
int len,
int maxStack,
int maxLocals)
- Description copied from class:
Attribute
- Returns the byte array form of this attribute.
- Overrides:
write
in class Attribute
- Parameters:
cw
- the class to which this attribute must be added. This parameter
can be used to add to the constant pool of this class the items that
corresponds to this attribute.code
- the bytecode of the method corresponding to this code
attribute, or null if this attribute is not a code
attributes.len
- the length of the bytecode of the method corresponding to this
code attribute, or null if this attribute is not a code
attribute.maxStack
- the maximum stack size of the method corresponding to this
code attribute, or -1 if this attribute is not a code attribute.maxLocals
- the maximum number of local variables of the method
corresponding to this code attribute, or -1 if this attribute is not
a code attribute.
- Returns:
- the byte array form of this attribute.
toString
public String toString()
- Returns value in the format described in JSR-175 for Java source code.
- Overrides:
toString
in class Object
- Returns:
- value in the format described in JSR-175 for Java source code.