Class KotlinPanacheClassOperationGenerationVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- io.quarkus.panache.common.deployment.visitors.KotlinPanacheClassOperationGenerationVisitor
-
public class KotlinPanacheClassOperationGenerationVisitor extends org.objectweb.asm.ClassVisitorkotlinc 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
Fields Modifier and Type Field Description protected Function<String,String>argMapperprotected static ByteCodeTypeCLASSprotected org.jboss.jandex.ClassInfoclassInfoprotected ByteCodeTypeentityUpperBoundprotected List<PanacheMethodCustomizer>methodCustomizersstatic StringNOT_NULL_DESCRIPTORstatic StringNULLABLE_DESCRIPTORstatic ByteCodeTypeOBJECTprotected Map<String,ByteCodeType>typeArgumentsprotected TypeBundletypeBundle
-
Constructor Summary
Constructors Constructor Description KotlinPanacheClassOperationGenerationVisitor(org.objectweb.asm.ClassVisitor outputClassVisitor, org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.IndexView indexView, TypeBundle typeBundle, ByteCodeType baseType, List<PanacheMethodCustomizer> methodCustomizers)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddNullityChecks(org.objectweb.asm.MethodVisitor mv, org.jboss.jandex.MethodInfo method)protected StringbridgeMethodDescriptor(org.jboss.jandex.MethodInfo method, Function<String,String> 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)StringtoString()voidvisitEnd()org.objectweb.asm.MethodVisitorvisitMethod(int access, String name, String descriptor, String signature, String[] exceptions)
-
-
-
Field Detail
-
NOT_NULL_DESCRIPTOR
public static final String NOT_NULL_DESCRIPTOR
- See Also:
- Constant Field Values
-
NULLABLE_DESCRIPTOR
public static final String NULLABLE_DESCRIPTOR
- See Also:
- Constant Field Values
-
OBJECT
public static final ByteCodeType OBJECT
-
CLASS
protected static final ByteCodeType CLASS
-
classInfo
protected final org.jboss.jandex.ClassInfo classInfo
-
entityUpperBound
protected final ByteCodeType entityUpperBound
-
typeArguments
protected final Map<String,ByteCodeType> typeArguments
-
methodCustomizers
protected List<PanacheMethodCustomizer> methodCustomizers
-
typeBundle
protected TypeBundle typeBundle
-
-
Constructor Detail
-
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 Detail
-
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,String> 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)
-
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
-
-