FileDocCategorySizeDatePackage
RuntimeInvisibleParameterAnnotations.javaAPI DocGlassfish v2 API6685Thu Mar 02 11:51:14 GMT 2006oracle.toplink.libraries.asm.attrs

RuntimeInvisibleParameterAnnotations

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 {@link Annotation annotation} on the parameter corresponding to the sequence number of this parameter_annotations element.
see
JSR 175 : A Metadata Facility for the Java Programming Language
author
Eugene Kuleshov

Fields Summary
public List
parameters
List of Lists that contains Annotation for each method parameter.
Constructors Summary
public RuntimeInvisibleParameterAnnotations()


     
    super("RuntimeInvisibleParameterAnnotations");
  
Methods Summary
protected oracle.toplink.libraries.asm.Attributeread(oracle.toplink.libraries.asm.ClassReader cr, int off, int len, char[] buf, int codeOff, oracle.toplink.libraries.asm.Label[] labels)

    RuntimeInvisibleParameterAnnotations atr =
      new RuntimeInvisibleParameterAnnotations();
    Annotation.readParameterAnnotations(atr.parameters, cr, off, buf);
    return atr;
  
public java.lang.StringtoString()

    return Annotation.stringParameterAnnotations(parameters);
  
protected oracle.toplink.libraries.asm.ByteVectorwrite(oracle.toplink.libraries.asm.ClassWriter cw, byte[] code, int len, int maxStack, int maxLocals)

    return Annotation.writeParametersAnnotations(
      new ByteVector(), parameters, cw);