类 RecordComponentWriter

java.lang.Object
cn.taketoday.bytecode.RecordComponentVisitor
cn.taketoday.bytecode.RecordComponentWriter

final class RecordComponentWriter extends RecordComponentVisitor
  • 字段详细资料

    • symbolTable

      private final SymbolTable symbolTable
      Where the constants used in this RecordComponentWriter must be stored.
    • nameIndex

      private final int nameIndex
      The name_index field of the Record attribute.
    • descriptorIndex

      private final int descriptorIndex
      The descriptor_index field of the the Record attribute.
    • signatureIndex

      private int signatureIndex
      The signature_index field of the Signature attribute of this record component, or 0 if there is no Signature attribute.
    • lastRuntimeVisibleAnnotation

      private AnnotationWriter lastRuntimeVisibleAnnotation
      The last runtime visible annotation of this record component. The previous ones can be accessed with the AnnotationWriter.previousAnnotation field. May be null.
    • lastRuntimeInvisibleAnnotation

      private AnnotationWriter lastRuntimeInvisibleAnnotation
      The last runtime invisible annotation of this record component. The previous ones can be accessed with the AnnotationWriter.previousAnnotation field. May be null.
    • lastRuntimeVisibleTypeAnnotation

      private AnnotationWriter lastRuntimeVisibleTypeAnnotation
      The last runtime visible type annotation of this record component. The previous ones can be accessed with the AnnotationWriter.previousAnnotation field. May be null.
    • lastRuntimeInvisibleTypeAnnotation

      private AnnotationWriter lastRuntimeInvisibleTypeAnnotation
      The last runtime invisible type annotation of this record component. The previous ones can be accessed with the AnnotationWriter.previousAnnotation field. May be null.
    • firstAttribute

      private Attribute firstAttribute
      The first non standard attribute of this record component. The next ones can be accessed with the Attribute.nextAttribute field. 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(Attribute). The putRecordComponentInfo(ByteVector) method writes the attributes in the order defined by this list, i.e. in the reverse order specified by the user.

  • 构造器详细资料

    • RecordComponentWriter

      RecordComponentWriter(SymbolTable symbolTable, String name, String descriptor, String signature)
      Constructs a new RecordComponentWriter.
      参数:
      symbolTable - where the constants used in this RecordComponentWriter must be stored.
      name - the record component name.
      descriptor - the record component descriptor (see Type).
      signature - the record component signature. May be null.
  • 方法详细资料

    • visitAnnotation

      public AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
      从类复制的说明: RecordComponentVisitor
      Visits an annotation of the record component.
      覆盖:
      visitAnnotation 在类中 RecordComponentVisitor
      参数:
      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)
      从类复制的说明: RecordComponentVisitor
      Visits an annotation on a type in the record component signature.
      覆盖:
      visitTypeAnnotation 在类中 RecordComponentVisitor
      参数:
      typeRef - a reference to the annotated type. The sort of this type reference must be TypeReference.CLASS_TYPE_PARAMETER, TypeReference.CLASS_TYPE_PARAMETER_BOUND or TypeReference.CLASS_EXTENDS. See TypeReference.
      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

      public void visitAttribute(Attribute attribute)
      从类复制的说明: RecordComponentVisitor
      Visits a non standard attribute of the record component.
      覆盖:
      visitAttribute 在类中 RecordComponentVisitor
      参数:
      attribute - an attribute.
    • visitEnd

      public void visitEnd()
      从类复制的说明: RecordComponentVisitor
      Visits the end of the record component. This method, which is the last one to be called, is used to inform the visitor that everything have been visited.
      覆盖:
      visitEnd 在类中 RecordComponentVisitor
    • computeRecordComponentInfoSize

      int computeRecordComponentInfoSize()
      Returns the size of the record component JVMS structure generated by this RecordComponentWriter. Also adds the names of the attributes of this record component in the constant pool.
      返回:
      the size in bytes of the record_component_info of the Record attribute.
    • putRecordComponentInfo

      void putRecordComponentInfo(ByteVector output)
      Puts the content of the record component generated by this RecordComponentWriter into the given ByteVector.
      参数:
      output - where the record_component_info structure must be put.
    • collectAttributePrototypes

      final void collectAttributePrototypes(Attribute.Set attributePrototypes)
      Collects the attributes of this record component into the given set of attribute prototypes.
      参数:
      attributePrototypes - a set of attribute prototypes.