@Internal public class ExecutableMethodWriter extends AbstractAnnotationMetadataWriter implements org.objectweb.asm.Opcodes
ExecutableMethod
implementations.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FIELD_PARENT
Constant for parent field.
|
protected static org.objectweb.asm.commons.Method |
METHOD_GET_TARGET |
protected 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, FIELD_ANNOTATION_METADATA, loadTypeMethods, targetClassType
CONSTRUCTOR_NAME, DEFAULT_MAX_STACK, DESCRIPTOR_DEFAULT_CONSTRUCTOR, METHOD_DEFAULT_CONSTRUCTOR, NAME_TO_TYPE_MAP, originatingElement, 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_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, ASM4, ASM5, ASM6, ASM7, 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, V9
Constructor and Description |
---|
ExecutableMethodWriter(java.lang.String beanFullClassName,
java.lang.String methodClassName,
java.lang.String methodProxyShortName,
boolean isInterface,
boolean isAbstract,
boolean isDefault,
boolean isSuspend,
Element originatingElement,
AnnotationMetadata annotationMetadata) |
ExecutableMethodWriter(java.lang.String beanFullClassName,
java.lang.String methodClassName,
java.lang.String methodProxyShortName,
boolean isInterface,
boolean isDefault,
boolean isSuspend,
Element originatingElement,
AnnotationMetadata annotationMetadata) |
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,
java.lang.String methodName,
java.lang.Object returnType,
java.util.Collection<java.lang.Object> argumentTypes,
org.objectweb.asm.commons.GeneratorAdapter invokeMethodVisitor) |
java.lang.String |
getClassName() |
java.lang.String |
getInternalName() |
boolean |
isAbstract() |
boolean |
isDefault() |
boolean |
isInterface() |
boolean |
isSuspend() |
void |
makeInner(java.lang.String outerName,
org.objectweb.asm.ClassWriter outerClassWriter) |
void |
makeStaticInner(java.lang.String parentInternalName,
org.objectweb.asm.ClassWriter classWriter) |
void |
visitMethod(java.lang.Object declaringType,
java.lang.Object returnType,
java.lang.Object genericReturnType,
java.util.Map<java.lang.String,java.lang.Object> returnTypeGenericTypes,
java.lang.String methodName,
java.util.Map<java.lang.String,java.lang.Object> argumentTypes,
java.util.Map<java.lang.String,java.lang.Object> genericArgumentTypes,
java.util.Map<java.lang.String,AnnotationMetadata> argumentAnnotationMetadata,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> genericTypes)
Write the method.
|
initializeAnnotationMetadata, writeAnnotationMetadataStaticInitializer, writeGetAnnotationMetadataMethod
buildArgument, generateServiceDescriptor, getClassFileName, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getInternalNameForCast, getMethodDescriptor, getMethodDescriptor, getMethodSignature, getObjectType, getObjectTypes, getOriginatingElement, getTypeDescriptor, getTypeDescriptor, getTypeReference, getTypeReference, getTypeReferenceForName, getWrapperType, invokeConstructor, invokeInterfaceStaticMethod, isPrimitive, newClassWriterOutputVisitor, pushBoxPrimitiveIfNecessary, pushBuildArgumentsForMethod, pushCastToType, pushMethodNameAndTypesArguments, pushNewArray, pushNewInstance, pushReturnValue, pushStoreInArray, pushStoreStringInArray, pushStoreTypeInArray, pushTypeArgumentElements, pushTypeArguments, returnVoid, startClass, startClass, startConstructor, startConstructor, startFinalClass, startProtectedMethod, startPublicClass, startPublicFinalClass, startPublicFinalMethodZeroArgs, startPublicMethod, startPublicMethodZeroArgs, startService, startService, toParameterTypes, toTypeArguments, toTypeArguments, visitStaticInitializer, writeBooleanMethod, writeClassToDisk, writeClassToDisk, writeTo
public static final java.lang.String FIELD_PARENT
protected 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(java.lang.String beanFullClassName, java.lang.String methodClassName, java.lang.String methodProxyShortName, boolean isInterface, boolean isDefault, boolean isSuspend, Element originatingElement, AnnotationMetadata annotationMetadata)
beanFullClassName
- The bean full class namemethodClassName
- The method class namemethodProxyShortName
- The method proxy short nameisInterface
- Whether is an interfaceisDefault
- Whether the method is a default methodisSuspend
- Whether the method is Kotlin suspend functionoriginatingElement
- The originating elementannotationMetadata
- The annotation metadatapublic ExecutableMethodWriter(java.lang.String beanFullClassName, java.lang.String methodClassName, java.lang.String methodProxyShortName, boolean isInterface, boolean isAbstract, boolean isDefault, boolean isSuspend, Element originatingElement, AnnotationMetadata annotationMetadata)
beanFullClassName
- The bean full class namemethodClassName
- The method class namemethodProxyShortName
- The method proxy short nameisInterface
- Whether is an interfaceisAbstract
- Whether the method is abstractisDefault
- Whether the method is a default methodisSuspend
- Whether the method is Kotlin suspend functionoriginatingElement
- The originating elementannotationMetadata
- The annotation metadatapublic boolean isAbstract()
public boolean isInterface()
public boolean isDefault()
public boolean isSuspend()
public java.lang.String getClassName()
public java.lang.String getInternalName()
public void makeInner(java.lang.String outerName, org.objectweb.asm.ClassWriter outerClassWriter)
outerName
- The outer nameouterClassWriter
- The outer class writerpublic void visitMethod(java.lang.Object declaringType, java.lang.Object returnType, java.lang.Object genericReturnType, java.util.Map<java.lang.String,java.lang.Object> returnTypeGenericTypes, java.lang.String methodName, java.util.Map<java.lang.String,java.lang.Object> argumentTypes, java.util.Map<java.lang.String,java.lang.Object> genericArgumentTypes, java.util.Map<java.lang.String,AnnotationMetadata> argumentAnnotationMetadata, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> genericTypes)
declaringType
- The declaring typereturnType
- The return typegenericReturnType
- The generic return typereturnTypeGenericTypes
- The return type genericsmethodName
- The method nameargumentTypes
- The argument typesgenericArgumentTypes
- The generic argument typesargumentAnnotationMetadata
- The argument annotation metadatagenericTypes
- The generic typespublic void makeStaticInner(java.lang.String parentInternalName, org.objectweb.asm.ClassWriter classWriter)
parentInternalName
- The parent internal nameclassWriter
- The current class writerpublic void accept(ClassWriterOutputVisitor classWriterOutputVisitor) throws java.io.IOException
AbstractClassFileWriter
accept
in class AbstractClassFileWriter
classWriterOutputVisitor
- The ClassWriterOutputVisitor
java.io.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, java.lang.String methodName, java.lang.Object returnType, java.util.Collection<java.lang.Object> 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