Interface TypeWriter.RecordComponentPool.Record

All Known Implementing Classes:
TypeWriter.RecordComponentPool.Record.ForExplicitRecordComponent, TypeWriter.RecordComponentPool.Record.ForImplicitRecordComponent
Enclosing interface:
TypeWriter.RecordComponentPool

public static interface TypeWriter.RecordComponentPool.Record
An entry of a record component pool that describes how a record component is implemented.
See Also:
  • Method Details

    • isImplicit

      boolean isImplicit()
      Determines if this record is implicit, i.e is not defined by a TypeWriter.RecordComponentPool.
      Returns:
      true if this record is implicit.
    • getRecordComponent

      RecordComponentDescription getRecordComponent()
      Returns the record component that this record represents.
      Returns:
      The record component that this record represents.
    • getRecordComponentAppender

      RecordComponentAttributeAppender getRecordComponentAppender()
      Returns the record component attribute appender for a given record component.
      Returns:
      The record component appender to be applied on the given field.
    • apply

      void apply(org.objectweb.asm.ClassVisitor classVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory)
      Writes this record to a given class visitor.
      Parameters:
      classVisitor - The class visitor to which this record is to be written to.
      annotationValueFilterFactory - The annotation value filter factory to apply when writing annotations.
    • apply

      void apply(org.objectweb.asm.RecordComponentVisitor recordComponentVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory)
      Applies this record to a record component visitor. This is not possible for implicit records.
      Parameters:
      recordComponentVisitor - The record component visitor onto which this record is to be applied.
      annotationValueFilterFactory - The annotation value filter factory to use for annotations.