org.objectweb.asm.attrs
Class EnclosingMethodAttribute
public class EnclosingMethodAttribute
The EnclosingMethod attribute is an optional fixed-length attribute in
the attributes table of the ClassFile structure. A class must have an
EnclosingMethod attribute if and only if it is a local class or an
anonymous class. A class may have no more than one EnclosingMethod attribute.
The EnclosingMethod attribute has the following format:
EnclosingMethod_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 class_index
u2 method_index;
}
The items of the EnclosingMethod_attribute 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 "EnclosingMethod".
- attribute_length
- The value of the attribute_length item is four.
- class_index
- The value of the class_index item must be a valid index into the
constant_pool table. The constant_pool entry at that index must be a
CONSTANT_Class_info structure representing the
innermost class that encloses the declaration of the current class.
- method_index
- If the current class is not immediately enclosed by a method or
constructor, then the value of the method_index item must be zero.
Otherwise, the value of the method_index item must be a valid
index into the constant_pool table. The constant_pool entry at that
index must be a CONSTANT_NameAndType_info structure
representing a the name and type of a method in the class
referenced by the class_index attribute above. It is the
responsibility of the Java compiler to ensure that the method
identified via the method_index is indeed the closest lexically
enclosing method of the class that contains this EnclosingMethod
attribute.
- Eugene Kuleshov
EnclosingMethodAttribute
public EnclosingMethodAttribute()
EnclosingMethodAttribute
public EnclosingMethodAttribute(String owner,
String name,
String desc)
toString
public String toString()
write
protected ByteVector write(ClassWriter cw,
byte[] code,
int len,
int maxStack,
int maxLocals)
Returns the byte array form of this attribute.
- write in interface Attribute
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.
- the byte array form of this attribute.