@Internal public class ExecutableMethodWriter extends AbstractAnnotationMetadataWriter implements org.objectweb.asm.Opcodes
ExecutableMethod
implementations.Modifier and Type | Field and Description |
---|---|
protected static org.objectweb.asm.commons.Method |
METHOD_GET_TARGET |
static org.objectweb.asm.commons.Method |
METHOD_INVOKE_INTERNAL |
protected static org.objectweb.asm.commons.Method |
METHOD_IS_ABSTRACT |
protected static org.objectweb.asm.commons.Method |
METHOD_IS_SUSPEND |
protected org.objectweb.asm.Type |
methodType |
annotationMetadata, defaults, FIELD_ANNOTATION_METADATA, loadTypeMethods, targetClassType
ARRAY_PATTERN, CONSTRUCTOR_NAME, DEFAULT_MAX_STACK, DESCRIPTOR_DEFAULT_CONSTRUCTOR, METHOD_CREATE_ARGUMENT_SIMPLE, METHOD_CREATE_TYPE_VARIABLE_SIMPLE, METHOD_DEFAULT_CONSTRUCTOR, METHOD_GENERIC_PLACEHOLDER_SIMPLE, originatingElements, TYPE_ARGUMENT, TYPE_ARGUMENT_ARRAY, TYPE_CLASS, TYPE_GENERATED, TYPE_OBJECT, ZERO_ARGUMENTS_CONSTANT
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V9
Constructor and Description |
---|
ExecutableMethodWriter(String methodClassName,
boolean isInterface,
boolean isAbstract,
boolean isDefault,
boolean isSuspend,
OriginatingElements originatingElements,
AnnotationMetadata annotationMetadata,
String interceptedProxyClassName,
String interceptedProxyBridgeMethodName) |
Modifier and Type | Method and Description |
---|---|
void |
accept(ClassWriterOutputVisitor classWriterOutputVisitor)
Accept a ClassWriterOutputVisitor to write this writer to disk.
|
protected org.objectweb.asm.commons.GeneratorAdapter |
beginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter)
Returns the generator adaptor for the method that resolves the annotation metadata.
|
protected void |
buildInvokeMethod(org.objectweb.asm.Type declaringTypeObject,
String methodName,
ClassElement returnType,
Collection<ParameterElement> argumentTypes,
org.objectweb.asm.commons.GeneratorAdapter invokeMethodVisitor) |
String |
getClassName() |
String |
getInternalName() |
boolean |
isAbstract() |
boolean |
isDefault() |
boolean |
isInterface() |
boolean |
isSupportsInterceptedProxy() |
boolean |
isSuspend() |
void |
visitMethod(TypedElement declaringType,
MethodElement methodElement)
Write the method.
|
initializeAnnotationMetadata, writeAnnotationMetadataStaticInitializer, writeAnnotationMetadataStaticInitializer, writeGetAnnotationMetadataMethod
addOriginatingElement, buildArgument, buildArgument, buildArgumentWithGenerics, buildArgumentWithGenerics, generateServiceDescriptor, getClassFileName, getConstructorDescriptor, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getInternalNameForCast, getInternalNameForCast, getInternalNameForCast, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptorForReturnType, getMethodSignature, getObjectType, getOriginatingElement, getOriginatingElements, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeReference, getTypeReferenceForName, getTypes, implementInterceptedTypeMethod, invokeConstructor, invokeInterfaceStaticMethod, invokeMethod, newClassWriterOutputVisitor, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBuildArgumentsForMethod, pushCastToType, pushCastToType, pushCastToType, pushCreateArgument, pushMethodNameAndTypesArguments, pushNewArray, pushNewArray, pushNewInstance, pushReturnTypeArgument, pushReturnValue, pushStoreInArray, pushStoreInArray, pushStoreStringInArray, pushStoreTypeInArray, pushStringMapOf, pushTypeArgumentElements, returnVoid, startClass, startClass, startConstructor, startConstructor, startFinalClass, startProtectedMethod, startPublicClass, startPublicFinalClass, startPublicFinalMethodZeroArgs, startPublicMethod, startPublicMethod, startPublicMethodZeroArgs, startService, startService, visitStaticInitializer, writeBooleanMethod, writeClassToDisk, writeClassToDisk, writeTo
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
of
public static final org.objectweb.asm.commons.Method METHOD_INVOKE_INTERNAL
protected static final org.objectweb.asm.commons.Method METHOD_IS_ABSTRACT
protected static final org.objectweb.asm.commons.Method METHOD_IS_SUSPEND
protected static final org.objectweb.asm.commons.Method METHOD_GET_TARGET
protected final org.objectweb.asm.Type methodType
public ExecutableMethodWriter(String methodClassName, boolean isInterface, boolean isAbstract, boolean isDefault, boolean isSuspend, OriginatingElements originatingElements, AnnotationMetadata annotationMetadata, String interceptedProxyClassName, String interceptedProxyBridgeMethodName)
methodClassName
- The method class nameisInterface
- Whether is an interfaceisAbstract
- Whether the method is abstractisDefault
- Whether the method is a default methodisSuspend
- Whether the method is Kotlin suspend functionoriginatingElements
- The originating elementsannotationMetadata
- The annotation metadatainterceptedProxyClassName
- The intercepted proxy class nameinterceptedProxyBridgeMethodName
- The intercepted proxy bridge method namepublic boolean isSupportsInterceptedProxy()
public boolean isAbstract()
public boolean isInterface()
public boolean isDefault()
public boolean isSuspend()
public String getClassName()
public String getInternalName()
public void visitMethod(TypedElement declaringType, MethodElement methodElement)
declaringType
- The declaring typemethodElement
- The method elementpublic void accept(ClassWriterOutputVisitor classWriterOutputVisitor) throws IOException
AbstractClassFileWriter
accept
in class AbstractClassFileWriter
classWriterOutputVisitor
- The ClassWriterOutputVisitor
IOException
- if there is an error writing to disk@NonNull protected final org.objectweb.asm.commons.GeneratorAdapter beginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter)
AbstractAnnotationMetadataWriter
beginAnnotationMetadataMethod
in class AbstractAnnotationMetadataWriter
classWriter
- The class writerprotected void buildInvokeMethod(org.objectweb.asm.Type declaringTypeObject, String methodName, ClassElement returnType, Collection<ParameterElement> argumentTypes, org.objectweb.asm.commons.GeneratorAdapter invokeMethodVisitor)
declaringTypeObject
- The declaring object typemethodName
- The method namereturnType
- The return typeargumentTypes
- The argument typesinvokeMethodVisitor
- The invoke method visitor