@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_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_CLASS, TYPE_OBJECT
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,AnnotationMetadata> argumentAnnotationMetadata,
Map<String,Map<String,Object>> genericTypes)
Write the method.
|
getAnnotationMetadataWriter, initializeAnnotationMetadata, writeAnnotationMetadataStaticInitializer, writeGetAnnotationMetadataMethod
generateServiceDescriptor, getClassFileName, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getInternalNameForCast, getMethodDescriptor, getMethodDescriptor, getMethodSignature, getObjectType, getObjectTypes, getTypeDescriptor, getTypeDescriptor, getTypeReference, getTypeReferenceForName, getWrapperType, invokeConstructor, invokeInterfaceStaticMethod, isPrimitive, newClassWriterOutputVisitor, pushBoxPrimitiveIfNecessary, pushCastToType, pushMethodNameAndTypesArguments, pushNewArray, pushReturnValue, pushStoreInArray, pushStoreStringInArray, pushStoreTypeInArray, returnVoid, startClass, startClass, startConstructor, startConstructor, startProtectedMethod, startPublicMethod, startPublicMethodZeroArgs, visitStaticInitializer, writeClassToDisk, writeClassToDisk, writeTo
public static final String FIELD_PARENT
protected static final org.objectweb.asm.commons.Method METHOD_INVOKE_INTERNAL
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,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 typesargumentAnnotationMetadata
- The argument annotation metadatagenericTypes
- The generic typesprotected 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 visitorpublic 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 writer