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 Summary
FieldsModifier and TypeFieldDescriptionprotected static final ByteCodeTypeprotected final org.jboss.jandex.ClassInfoprotected final ByteCodeTypeprotected List<PanacheMethodCustomizer> static final Stringstatic final Stringstatic final ByteCodeTypeprotected final Map<String, ByteCodeType> protected TypeBundleFields inherited from class org.objectweb.asm.ClassVisitor
api, cv -
Constructor Summary
ConstructorsConstructorDescriptionKotlinPanacheClassOperationGenerationVisitor(org.objectweb.asm.ClassVisitor outputClassVisitor, org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.IndexView indexView, TypeBundle typeBundle, ByteCodeType baseType, List<PanacheMethodCustomizer> methodCustomizers) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddNullityChecks(org.objectweb.asm.MethodVisitor mv, org.jboss.jandex.MethodInfo method) protected StringbridgeMethodDescriptor(org.jboss.jandex.MethodInfo method, Function<String, org.jboss.jandex.Type> mapper) protected voiddiscoverTypeParameters(org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.IndexView indexView, TypeBundle types, ByteCodeType baseType) protected voidloadOperationsReference(org.objectweb.asm.MethodVisitor mv) static List<ByteCodeType> recursivelyFindEntityTypeArguments(org.jboss.jandex.IndexView indexView, org.jboss.jandex.DotName clazz, org.jboss.jandex.DotName repositoryDotName) toString()voidvisitEnd()org.objectweb.asm.MethodVisitorvisitMethod(int access, String name, String descriptor, String signature, String[] exceptions) Methods inherited from class org.objectweb.asm.ClassVisitor
getDelegate, visit, visitAnnotation, visitAttribute, visitField, visitInnerClass, visitModule, visitNestHost, visitNestMember, visitOuterClass, visitPermittedSubclass, visitRecordComponent, visitSource, visitTypeAnnotation
-
Field Details
-
NOT_NULL_DESCRIPTOR
- See Also:
-
NULLABLE_DESCRIPTOR
- See Also:
-
OBJECT
-
CLASS
-
argMapper
-
classInfo
protected final org.jboss.jandex.ClassInfo classInfo -
entityUpperBound
-
typeArguments
-
methodCustomizers
-
typeBundle
-
-
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
-
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
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) - Overrides:
visitMethodin classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()- Overrides:
visitEndin classorg.objectweb.asm.ClassVisitor
-