@Internal public class ExecutableMethodWriter extends AbstractAnnotationMetadataWriter implements org.objectweb.asm.Opcodes
ExecutableMethod
implementations.Modifier and Type | Field and Description |
---|---|
static 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 org.objectweb.asm.Type |
methodType |
annotationMetadata, annotationMetadataWriter, FIELD_ANNOTATION_METADATA, targetClassType
CONSTRUCTOR_NAME, DEFAULT_MAX_STACK, DESCRIPTOR_DEFAULT_CONSTRUCTOR, METHOD_DEFAULT_CONSTRUCTOR, NAME_TO_TYPE_MAP, TYPE_ARGUMENT, TYPE_ARGUMENT_ARRAY, TYPE_CLASS, 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, 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, V9
Constructor and Description |
---|
ExecutableMethodWriter(String beanFullClassName,
String methodClassName,
String methodProxyShortName,
boolean isInterface,
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,
String methodName,
Object returnType,
Collection<Object> argumentTypes,
org.objectweb.asm.commons.GeneratorAdapter invokeMethodVisitor) |
String |
getClassName() |
String |
getInternalName() |
void |
makeInner(String outerName,
org.objectweb.asm.ClassWriter outerClassWriter) |
void |
makeStaticInner(String parentInternalName,
org.objectweb.asm.ClassWriter classWriter) |
void |
visitMethod(Object declaringType,
Object returnType,
Object genericReturnType,
Map<String,Object> returnTypeGenericTypes,
String methodName,
Map<String,Object> argumentTypes,
Map<String,Object> genericArgumentTypes,
Map<String,AnnotationMetadata> argumentAnnotationMetadata,
Map<String,Map<String,Object>> genericTypes)
Write the method.
|
getAnnotationMetadataWriter, initializeAnnotationMetadata, writeAnnotationMetadataStaticInitializer, writeGetAnnotationMetadataMethod
buildArgument, generateServiceDescriptor, getClassFileName, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getInternalNameForCast, getMethodDescriptor, getMethodDescriptor, getMethodSignature, getObjectType, getObjectTypes, getTypeDescriptor, getTypeDescriptor, getTypeForElement, 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, startPublicMethod, startPublicMethodZeroArgs, toParameterTypes, toTypeArguments, toTypeArguments, visitStaticInitializer, writeClassToDisk, writeClassToDisk, writeTo
public static final String FIELD_PARENT
protected static final org.objectweb.asm.commons.Method METHOD_INVOKE_INTERNAL
protected static final org.objectweb.asm.commons.Method METHOD_GET_TARGET
protected final org.objectweb.asm.Type methodType
public ExecutableMethodWriter(String beanFullClassName, String methodClassName, String methodProxyShortName, boolean isInterface, AnnotationMetadata annotationMetadata)
beanFullClassName
- The bean full class namemethodClassName
- The method class namemethodProxyShortName
- The method proxy short nameisInterface
- Whether is an interfaceannotationMetadata
- The annotation metadatapublic String getClassName()
public String getInternalName()
public void makeInner(String outerName, org.objectweb.asm.ClassWriter outerClassWriter)
outerName
- The outer nameouterClassWriter
- The outer class writerpublic void visitMethod(Object declaringType, Object returnType, Object genericReturnType, Map<String,Object> returnTypeGenericTypes, String methodName, Map<String,Object> argumentTypes, Map<String,Object> genericArgumentTypes, Map<String,AnnotationMetadata> argumentAnnotationMetadata, Map<String,Map<String,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(String parentInternalName, org.objectweb.asm.ClassWriter classWriter)
parentInternalName
- The parent internal nameclassWriter
- The current class writerpublic 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, Object returnType, Collection<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