@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 static org.objectweb.asm.commons.Method |
METHOD_IS_ABSTRACT |
protected org.objectweb.asm.Type |
methodType |
annotationMetadata, annotationMetadataWriter, FIELD_ANNOTATION_METADATA, targetClassTypeCONSTRUCTOR_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_CONSTANTAALOAD, 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) |
ExecutableMethodWriter(String beanFullClassName,
String methodClassName,
String methodProxyShortName,
boolean isInterface,
boolean isAbstract,
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() |
boolean |
isAbstract() |
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, writeGetAnnotationMetadataMethodbuildArgument, 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, writeTopublic 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_IS_ABSTRACT
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 ExecutableMethodWriter(String beanFullClassName, String methodClassName, String methodProxyShortName, boolean isInterface, boolean isAbstract, 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 abstractannotationMetadata - The annotation metadatapublic boolean isAbstract()
public 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
AbstractClassFileWriteraccept in class AbstractClassFileWriterclassWriterOutputVisitor - The ClassWriterOutputVisitorIOException - if there is an error writing to disk@Nonnull protected final org.objectweb.asm.commons.GeneratorAdapter beginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter)
AbstractAnnotationMetadataWriterbeginAnnotationMetadataMethod in class AbstractAnnotationMetadataWriterclassWriter - 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