org.objectweb.asm.attrs
Class RuntimeInvisibleParameterAnnotations
java.lang.Object
org.objectweb.asm.Attribute
org.objectweb.asm.attrs.RuntimeInvisibleParameterAnnotations
- Direct Known Subclasses:
- ASMRuntimeInvisibleParameterAnnotations
public class RuntimeInvisibleParameterAnnotations
- extends Attribute
The RuntimeInvisibleParameterAnnotations attribute is similar to the
RuntimeVisibleParameterAnnotations attribute, except that the annotations
represented by a RuntimeInvisibleParameterAnnotations attribute must not be
made available for return by reflective APIs, unless the JVM has specifically
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 RuntimeInvisibleParameterAnnotations attribute is a variable length
attribute in the attributes table of the method_info structure. The
RuntimeInvisibleParameterAnnotations attribute records runtime-invisible Java
programming language annotations on the parameters of the corresponding method.
Each method_info structure may contain at most one
RuntimeInvisibleParameterAnnotations attribute, which records all the
runtime-invisible Java programming language annotations on the parameters of
the corresponding method.
The RuntimeInvisibleParameterAnnotations attribute has the following format:
RuntimeInvisibleParameterAnnotations_attribute {
u2 attribute_name_index;
u4 attribute_length;
u1 num_parameters;
{
u2 num_annotations;
annotation annotations[num_annotations];
} parameter_annotations[num_parameters];
}
The items of the RuntimeInvisibleParameterAnnotations 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
"RuntimeInvisibleParameterAnnotations".
- 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 parameters, the number of runtime-invisible
annotations on each parameter, and their values.
- num_parameters
- The value of the num_parameters item gives the number of parameters of the
method represented by the method_info structure on which the annotation
occurs. (This duplicates information that could be extracted from the method
descriptor.)
- parameter_annotations
- Each value of the parameter_annotations table represents all of the
runtime-invisible annotations on a single parameter. The sequence of values
in the table corresponds to the sequence of parameters in the method
signature. Each parameter_annotations entry contains the following two items:
- num_annotations
- The value of the num_annotations item indicates the number of
runtime-invisible annotations on the parameter corresponding to the sequence
number of this parameter_annotations element.
- annotations
- Each value of the annotations table represents a single runtime-invisible
annotation on the parameter corresponding to the sequence
number of this parameter_annotations element.
- Author:
- Eugene Kuleshov
- See Also:
- JSR 175 : A Metadata
Facility for the Java Programming Language
|
Field Summary |
List |
parameters
List of Lists that
contains Annotation for each method parameter. |
parameters
public List parameters
List of Lists that
contains Annotation for each method parameter.
RuntimeInvisibleParameterAnnotations
public RuntimeInvisibleParameterAnnotations()
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()
- Overrides:
toString in class Object