Class TypeWriter.FieldPool.Record.ForExplicitField

java.lang.Object
net.bytebuddy.dynamic.scaffold.TypeWriter.FieldPool.Record.ForExplicitField
All Implemented Interfaces:
TypeWriter.FieldPool.Record
Enclosing interface:
TypeWriter.FieldPool.Record

@Enhance public static class TypeWriter.FieldPool.Record.ForExplicitField extends Object implements TypeWriter.FieldPool.Record
A record for a rich field with attributes and a potential default value.
  • Field Details

  • Constructor Details

    • ForExplicitField

      public ForExplicitField(FieldAttributeAppender attributeAppender, @MaybeNull Object defaultValue, FieldDescription fieldDescription)
      Creates a record for a rich field.
      Parameters:
      attributeAppender - The attribute appender for the field.
      defaultValue - The field's default value.
      fieldDescription - The implemented field.
  • Method Details

    • isImplicit

      public boolean isImplicit()
      Determines if this record is implicit, i.e is not defined by a TypeWriter.FieldPool.
      Specified by:
      isImplicit in interface TypeWriter.FieldPool.Record
      Returns:
      true if this record is implicit.
    • getField

      public FieldDescription getField()
      Returns the field that this record represents.
      Specified by:
      getField in interface TypeWriter.FieldPool.Record
      Returns:
      The field that this record represents.
    • getFieldAppender

      public FieldAttributeAppender getFieldAppender()
      Returns the field attribute appender for a given field.
      Specified by:
      getFieldAppender in interface TypeWriter.FieldPool.Record
      Returns:
      The attribute appender to be applied on the given field.
    • resolveDefault

      @MaybeNull public Object resolveDefault(@MaybeNull Object defaultValue)
      Resolves the default value that this record represents. This is not possible for implicit records.
      Specified by:
      resolveDefault in interface TypeWriter.FieldPool.Record
      Parameters:
      defaultValue - The default value that was defined previously or null if no default value is defined.
      Returns:
      The default value for the represented field or null if no default value is to be defined.
    • apply

      public void apply(org.objectweb.asm.ClassVisitor classVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory)
      Writes this entry to a given class visitor.
      Specified by:
      apply in interface TypeWriter.FieldPool.Record
      Parameters:
      classVisitor - The class visitor to which this entry is to be written to.
      annotationValueFilterFactory - The annotation value filter factory to apply when writing annotations.
    • apply

      public void apply(org.objectweb.asm.FieldVisitor fieldVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory)
      Applies this record to a field visitor. This is not possible for implicit records.
      Specified by:
      apply in interface TypeWriter.FieldPool.Record
      Parameters:
      fieldVisitor - The field visitor onto which this record is to be applied.
      annotationValueFilterFactory - The annotation value filter factory to use for annotations.