Class ByteCodeWriter

java.lang.Object
io.micronaut.sourcegen.bytecode.ByteCodeWriter

public final class ByteCodeWriter extends Object
Generates the classes directly by writing the bytecode.
Since:
1.5
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ByteCodeWriter(boolean checkClass, boolean visitMaxs)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    write(io.micronaut.sourcegen.model.ObjectDef objectDef)
    Writes the bytecode of generated class.
    byte[]
    write(io.micronaut.sourcegen.model.ObjectDef objectDef, @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
    Writes the bytecode of generated class.
    void
    writeClass(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ClassDef classDef)
    Write an interface.
    void
    writeClass(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ClassDef classDef, @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
    Write an interface.
    void
    writeField(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef, io.micronaut.sourcegen.model.FieldDef fieldDef)
    Write an enum.
    void
    writeInterface(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.InterfaceDef interfaceDef, @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
    Write an interface.
    void
    writeObject(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef)
    Write an object.
    void
    writeObject(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef, @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
    Write an object.
    void
    writeRecord(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.RecordDef recordDef)
    Write an interface.
    void
    writeRecord(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.RecordDef recordDef, @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
    Write an interface.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ByteCodeWriter

      public ByteCodeWriter()
    • ByteCodeWriter

      public ByteCodeWriter(boolean checkClass, boolean visitMaxs)
  • Method Details

    • writeObject

      public void writeObject(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef)
      Write an object.
      Parameters:
      classVisitor - The class visitor
      objectDef - The object definition
    • writeObject

      public void writeObject(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef, @Nullable @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
      Write an object.
      Parameters:
      classVisitor - The class visitor
      objectDef - The object definition
      outerType - The outer type
    • writeField

      public void writeField(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ObjectDef objectDef, io.micronaut.sourcegen.model.FieldDef fieldDef)
      Write an enum.
      Parameters:
      classVisitor - The class visitor
      objectDef - The object definition
      fieldDef - The field definition
    • writeInterface

      public void writeInterface(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.InterfaceDef interfaceDef, @Nullable @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
      Write an interface.
      Parameters:
      classVisitor - The class visitor
      interfaceDef - The interface definition
      outerType - The outer type
    • writeRecord

      public void writeRecord(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.RecordDef recordDef)
      Write an interface.
      Parameters:
      classVisitor - The class visitor
      recordDef - The record definition
    • writeRecord

      public void writeRecord(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.RecordDef recordDef, @Nullable @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
      Write an interface.
      Parameters:
      classVisitor - The class visitor
      recordDef - The record definition
      outerType - The outer type
    • writeClass

      public void writeClass(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ClassDef classDef)
      Write an interface.
      Parameters:
      classVisitor - The class visitor
      classDef - The class definition
    • writeClass

      public void writeClass(org.objectweb.asm.ClassVisitor classVisitor, io.micronaut.sourcegen.model.ClassDef classDef, @Nullable @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
      Write an interface.
      Parameters:
      classVisitor - The class visitor
      classDef - The class definition
      outerType - The outer type
    • write

      public byte[] write(io.micronaut.sourcegen.model.ObjectDef objectDef)
      Writes the bytecode of generated class.
      Parameters:
      objectDef - The object definition.
      Returns:
      The bytes
    • write

      public byte[] write(io.micronaut.sourcegen.model.ObjectDef objectDef, @Nullable @Nullable io.micronaut.sourcegen.model.ClassTypeDef outerType)
      Writes the bytecode of generated class.
      Parameters:
      objectDef - The object definition.
      outerType - The outer type.
      Returns:
      The bytes