类 FieldWriter
java.lang.Object
cn.taketoday.bytecode.FieldVisitor
cn.taketoday.bytecode.FieldWriter
A
FieldVisitor that generates a corresponding 'field_info' structure, as defined in the
Java Virtual Machine Specification (JVMS).- 作者:
- Eric Bruneton
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明private final intThe access_flags field of the field_info JVMS structure.private intThe constantvalue_index field of the ConstantValue attribute of this field_info, or 0 if there is no ConstantValue attribute.private final intThe descriptor_index field of the field_info JVMS structure.private AttributeThe first non standard attribute of this field.private AnnotationWriterThe last runtime invisible annotation of this field.private AnnotationWriterThe last runtime invisible type annotation of this field.private AnnotationWriterThe last runtime visible annotation of this field.private AnnotationWriterThe last runtime visible type annotation of this field.private final intThe name_index field of the field_info JVMS structure.private intThe signature_index field of the Signature attribute of this field_info, or 0 if there is no Signature attribute.private final SymbolTableWhere the constants used in this FieldWriter must be stored.从类继承的字段 cn.taketoday.bytecode.FieldVisitor
fv -
构造器概要
构造器构造器说明FieldWriter(SymbolTable symbolTable, int access, String name, String descriptor, String signature, Object constantValue) Constructs a newFieldWriter. -
方法概要
修饰符和类型方法说明(专用程序包) final voidcollectAttributePrototypes(Attribute.Set attributePrototypes) Collects the attributes of this field into the given set of attribute prototypes.(专用程序包) intReturns the size of the field_info JVMS structure generated by this FieldWriter.(专用程序包) voidputFieldInfo(ByteVector output) Puts the content of the field_info JVMS structure generated by this FieldWriter into the given ByteVector.visitAnnotation(String descriptor, boolean visible) Visits an annotation of the field.voidvisitAttribute(Attribute attribute) Visits a non standard attribute of the field.voidvisitEnd()Visits the end of the field.visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible) Visits an annotation on the type of the field.
-
字段详细资料
-
symbolTable
Where the constants used in this FieldWriter must be stored. -
accessFlags
private final int accessFlagsThe access_flags field of the field_info JVMS structure. This field can contain ASM specific access flags, such asOpcodes.ACC_DEPRECATED, which are removed when generating the ClassFile structure. -
nameIndex
private final int nameIndexThe name_index field of the field_info JVMS structure. -
descriptorIndex
private final int descriptorIndexThe descriptor_index field of the field_info JVMS structure. -
signatureIndex
private int signatureIndexThe signature_index field of the Signature attribute of this field_info, or 0 if there is no Signature attribute. -
constantValueIndex
private int constantValueIndexThe constantvalue_index field of the ConstantValue attribute of this field_info, or 0 if there is no ConstantValue attribute. -
lastRuntimeVisibleAnnotation
The last runtime visible annotation of this field. The previous ones can be accessed with theAnnotationWriter.previousAnnotationfield. May be null. -
lastRuntimeInvisibleAnnotation
The last runtime invisible annotation of this field. The previous ones can be accessed with theAnnotationWriter.previousAnnotationfield. May be null. -
lastRuntimeVisibleTypeAnnotation
The last runtime visible type annotation of this field. The previous ones can be accessed with theAnnotationWriter.previousAnnotationfield. May be null. -
lastRuntimeInvisibleTypeAnnotation
The last runtime invisible type annotation of this field. The previous ones can be accessed with theAnnotationWriter.previousAnnotationfield. May be null. -
firstAttribute
The first non standard attribute of this field. The next ones can be accessed with theAttribute.nextAttributefield. May be null.WARNING: this list stores the attributes in the reverse order of their visit. firstAttribute is actually the last attribute visited in
visitAttribute(cn.taketoday.bytecode.Attribute). TheputFieldInfo(cn.taketoday.bytecode.ByteVector)method writes the attributes in the order defined by this list, i.e. in the reverse order specified by the user.
-
-
构造器详细资料
-
FieldWriter
FieldWriter(SymbolTable symbolTable, int access, String name, String descriptor, String signature, Object constantValue) Constructs a newFieldWriter.- 参数:
symbolTable- where the constants used in this FieldWriter must be stored.access- the field's access flags (seeOpcodes).name- the field's name.descriptor- the field's descriptor (seeType).signature- the field's signature. May be null.constantValue- the field's constant value. May be null.
-
-
方法详细资料
-
visitAnnotation
从类复制的说明:FieldVisitorVisits an annotation of the field.- 覆盖:
visitAnnotation在类中FieldVisitor- 参数:
descriptor- the class descriptor of the annotation class.visible- true if the annotation is visible at runtime.- 返回:
- a visitor to visit the annotation values, or null if this visitor is not interested in visiting this annotation.
-
visitTypeAnnotation
public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible) 从类复制的说明:FieldVisitorVisits an annotation on the type of the field.- 覆盖:
visitTypeAnnotation在类中FieldVisitor- 参数:
typeRef- a reference to the annotated type. The sort of this type reference must beTypeReference.FIELD. SeeTypeReference.typePath- the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.descriptor- the class descriptor of the annotation class.visible- true if the annotation is visible at runtime.- 返回:
- a visitor to visit the annotation values, or null if this visitor is not interested in visiting this annotation.
-
visitAttribute
从类复制的说明:FieldVisitorVisits a non standard attribute of the field.- 覆盖:
visitAttribute在类中FieldVisitor- 参数:
attribute- an attribute.
-
visitEnd
public void visitEnd()从类复制的说明:FieldVisitorVisits the end of the field. This method, which is the last one to be called, is used to inform the visitor that all the annotations and attributes of the field have been visited.- 覆盖:
visitEnd在类中FieldVisitor
-
computeFieldInfoSize
int computeFieldInfoSize()Returns the size of the field_info JVMS structure generated by this FieldWriter. Also adds the names of the attributes of this field in the constant pool.- 返回:
- the size in bytes of the field_info JVMS structure.
-
putFieldInfo
Puts the content of the field_info JVMS structure generated by this FieldWriter into the given ByteVector.- 参数:
output- where the field_info structure must be put.
-
collectAttributePrototypes
Collects the attributes of this field into the given set of attribute prototypes.- 参数:
attributePrototypes- a set of attribute prototypes.
-