Class KotlinPanacheClassOperationGenerationVisitor

java.lang.Object
org.objectweb.asm.ClassVisitor
io.quarkus.panache.common.deployment.visitors.KotlinPanacheClassOperationGenerationVisitor

public class KotlinPanacheClassOperationGenerationVisitor extends org.objectweb.asm.ClassVisitor
kotlinc compiles default methods in to the implementing classes, so we need to elide them first, and then we can generate new methods like we do elsewhere.
  • Field Details

  • Constructor Details

    • KotlinPanacheClassOperationGenerationVisitor

      public KotlinPanacheClassOperationGenerationVisitor(org.objectweb.asm.ClassVisitor outputClassVisitor, org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.IndexView indexView, TypeBundle typeBundle, ByteCodeType baseType, List<PanacheMethodCustomizer> methodCustomizers)
  • Method Details

    • recursivelyFindEntityTypeArguments

      public static List<ByteCodeType> recursivelyFindEntityTypeArguments(org.jboss.jandex.IndexView indexView, org.jboss.jandex.DotName clazz, org.jboss.jandex.DotName repositoryDotName)
    • addNullityChecks

      protected void addNullityChecks(org.objectweb.asm.MethodVisitor mv, org.jboss.jandex.MethodInfo method)
    • bridgeMethodDescriptor

      protected String bridgeMethodDescriptor(org.jboss.jandex.MethodInfo method, Function<String,org.jboss.jandex.Type> mapper)
    • discoverTypeParameters

      protected void discoverTypeParameters(org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.IndexView indexView, TypeBundle types, ByteCodeType baseType)
    • loadOperationsReference

      protected void loadOperationsReference(org.objectweb.asm.MethodVisitor mv)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • visitMethod

      public org.objectweb.asm.MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions)
      Overrides:
      visitMethod in class org.objectweb.asm.ClassVisitor
    • visitEnd

      public void visitEnd()
      Overrides:
      visitEnd in class org.objectweb.asm.ClassVisitor