@Internal public abstract class AbstractClassFileWriter extends Object implements org.objectweb.asm.Opcodes, OriginatingElements, ClassOutputWriter
Modifier and Type | Field and Description |
---|---|
protected static Pattern |
ARRAY_PATTERN |
protected static String |
CONSTRUCTOR_NAME |
protected static int |
DEFAULT_MAX_STACK |
protected static String |
DESCRIPTOR_DEFAULT_CONSTRUCTOR |
protected static org.objectweb.asm.commons.Method |
METHOD_CREATE_ARGUMENT_SIMPLE |
protected static org.objectweb.asm.commons.Method |
METHOD_CREATE_TYPE_VARIABLE_SIMPLE |
protected static org.objectweb.asm.commons.Method |
METHOD_DEFAULT_CONSTRUCTOR |
protected static org.objectweb.asm.commons.Method |
METHOD_GENERIC_PLACEHOLDER_SIMPLE |
protected OriginatingElements |
originatingElements |
protected static org.objectweb.asm.Type |
TYPE_ARGUMENT |
protected static org.objectweb.asm.Type |
TYPE_ARGUMENT_ARRAY |
protected static org.objectweb.asm.Type |
TYPE_CLASS |
protected static org.objectweb.asm.Type |
TYPE_GENERATED |
protected static org.objectweb.asm.Type |
TYPE_OBJECT |
protected static String |
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, V19, V9
Modifier | Constructor and Description |
---|---|
protected |
AbstractClassFileWriter(Element... originatingElements) |
protected |
AbstractClassFileWriter(Element originatingElement)
Deprecated.
Use
AbstractClassFileWriter(Element...) instead |
protected |
AbstractClassFileWriter(OriginatingElements originatingElements) |
Modifier and Type | Method and Description |
---|---|
void |
addOriginatingElement(Element element)
Add another element that should be included in the originating elements.
|
protected static void |
buildArgument(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String argumentName,
ClassElement objectType)
Builds an argument instance.
|
protected static void |
buildArgument(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String argumentName,
org.objectweb.asm.Type objectType)
Builds an argument instance.
|
protected static void |
buildArgumentWithGenerics(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
org.objectweb.asm.Type type,
AnnotationMetadataReference annotationMetadata,
ClassElement[] generics)
Builds generic type arguments recursively.
|
protected static void |
buildArgumentWithGenerics(org.objectweb.asm.Type owningType,
org.objectweb.asm.ClassWriter owningClassWriter,
org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String argumentName,
org.objectweb.asm.Type typeReference,
ClassElement classElement,
Map<String,ClassElement> typeArguments,
Set<String> visitedTypes,
Map<String,Integer> defaults,
Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
Builds generic type arguments recursively.
|
protected void |
generateServiceDescriptor(String className,
GeneratedFile generatedFile)
Generates a service discovery for the given class name and file.
|
protected String |
getClassFileName(String className) |
protected static String |
getConstructorDescriptor(Class<?>... argumentTypes) |
protected static String |
getConstructorDescriptor(Collection<ParameterElement> argList) |
protected static String |
getConstructorDescriptor(org.objectweb.asm.Type[] argumentTypes) |
protected static String |
getInternalName(String className) |
protected static String |
getInternalNameForCast(Class<?> typeClass) |
protected static String |
getInternalNameForCast(org.objectweb.asm.Type type) |
protected static String |
getInternalNameForCast(TypedElement type) |
protected static String |
getMethodDescriptor(Class<?> returnType,
Collection<Class<?>> argumentTypes) |
protected static String |
getMethodDescriptor(String returnType,
String... argumentTypes) |
protected static String |
getMethodDescriptor(org.objectweb.asm.Type returnType,
Collection<org.objectweb.asm.Type> argumentTypes) |
protected static String |
getMethodDescriptor(TypedElement returnType,
Collection<? extends TypedElement> argumentTypes) |
protected static String |
getMethodDescriptorForReturnType(org.objectweb.asm.Type returnType,
Collection<? extends TypedElement> argumentTypes) |
protected static String |
getMethodSignature(String returnTypeReference,
String... argReferenceTypes) |
protected static org.objectweb.asm.Type |
getObjectType(Object type) |
Element |
getOriginatingElement() |
Element[] |
getOriginatingElements() |
protected static String |
getTypeDescriptor(Class<?> type)
Returns the descriptor corresponding to the given class.
|
protected static String |
getTypeDescriptor(String type)
Returns the descriptor corresponding to the given class.
|
protected static String |
getTypeDescriptor(String className,
String... genericTypes) |
protected static String |
getTypeDescriptor(TypedElement type)
Returns the descriptor corresponding to the given class.
|
protected static org.objectweb.asm.Type |
getTypeReference(TypedElement type)
Return the type reference for a class.
|
protected static org.objectweb.asm.Type |
getTypeReferenceForName(String className,
String... genericTypes)
Returns the Type reference corresponding to the given class.
|
protected org.objectweb.asm.Type[] |
getTypes(Collection<ClassElement> types) |
protected void |
implementInterceptedTypeMethod(org.objectweb.asm.Type interceptedType,
org.objectweb.asm.ClassWriter classWriter)
Implements a method called "getInterceptedType" for the given type and class writer.
|
protected void |
invokeConstructor(org.objectweb.asm.MethodVisitor cv,
Class superClass,
Class... argumentTypes) |
protected static void |
invokeInterfaceStaticMethod(org.objectweb.asm.MethodVisitor visitor,
Class targetType,
org.objectweb.asm.commons.Method method) |
protected ClassElement |
invokeMethod(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
MethodElement method)
Invokes the given method.
|
protected ClassWriterOutputVisitor |
newClassWriterOutputVisitor(File compilationDir) |
protected static void |
pushBoxPrimitiveIfNecessary(Class<?> fieldType,
org.objectweb.asm.MethodVisitor injectMethodVisitor) |
protected static void |
pushBoxPrimitiveIfNecessary(TypedElement fieldType,
org.objectweb.asm.MethodVisitor injectMethodVisitor) |
protected static void |
pushBoxPrimitiveIfNecessary(org.objectweb.asm.Type fieldType,
org.objectweb.asm.MethodVisitor injectMethodVisitor) |
protected static void |
pushBuildArgumentsForMethod(String declaringElementName,
org.objectweb.asm.Type owningType,
org.objectweb.asm.ClassWriter declaringClassWriter,
org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
Collection<ParameterElement> argumentTypes,
Map<String,Integer> defaults,
Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods) |
protected static void |
pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor,
Class<?> type) |
protected static void |
pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor,
org.objectweb.asm.Type type) |
protected static void |
pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor,
TypedElement type) |
protected static void |
pushCreateArgument(String declaringTypeName,
org.objectweb.asm.Type owningType,
org.objectweb.asm.ClassWriter declaringClassWriter,
org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String argumentName,
TypedElement typedElement,
AnnotationMetadata annotationMetadata,
Map<String,ClassElement> typeArguments,
Map<String,Integer> defaults,
Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
Pushes a new Argument creation.
|
protected static void |
pushMethodNameAndTypesArguments(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
String methodName,
Collection<ClassElement> argumentTypes) |
protected static void |
pushNewArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
Class<?> arrayType,
int size) |
protected static void |
pushNewArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
org.objectweb.asm.Type arrayType,
int size) |
protected void |
pushNewInstance(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
org.objectweb.asm.Type typeToInstantiate)
Push the instantiation of the given type.
|
protected void |
pushReturnTypeArgument(org.objectweb.asm.Type owningType,
org.objectweb.asm.ClassWriter classWriter,
org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String declaringTypeName,
ClassElement argument,
Map<String,Integer> defaults,
Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
Pushes an argument.
|
protected static void |
pushReturnValue(org.objectweb.asm.MethodVisitor methodVisitor,
TypedElement type) |
protected static void |
pushStoreInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
int index,
int size,
Runnable runnable) |
protected static void |
pushStoreInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
org.objectweb.asm.Type type,
int index,
int size,
Runnable runnable) |
protected static void |
pushStoreStringInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
int index,
int size,
String string) |
protected static void |
pushStoreTypeInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor,
int index,
int size,
ClassElement type) |
static <T> void |
pushStringMapOf(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
Map<? extends CharSequence,T> annotationData,
boolean skipEmpty,
T empty,
Consumer<T> pushValue) |
protected static void |
pushTypeArgumentElements(org.objectweb.asm.Type owningType,
org.objectweb.asm.ClassWriter owningTypeWriter,
org.objectweb.asm.commons.GeneratorAdapter generatorAdapter,
String declaringElementName,
Map<String,ClassElement> types,
Map<String,Integer> defaults,
Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
Pushes type arguments onto the stack.
|
protected void |
returnVoid(org.objectweb.asm.commons.GeneratorAdapter overriddenMethodGenerator) |
protected void |
startClass(org.objectweb.asm.ClassVisitor classWriter,
String className,
org.objectweb.asm.Type superType) |
protected void |
startClass(org.objectweb.asm.ClassWriter classWriter,
String className,
org.objectweb.asm.Type superType,
String genericSignature) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startConstructor(org.objectweb.asm.ClassVisitor classWriter) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startConstructor(org.objectweb.asm.ClassVisitor classWriter,
Class<?>... argumentTypes) |
protected void |
startFinalClass(org.objectweb.asm.ClassVisitor classWriter,
String className,
org.objectweb.asm.Type superType) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startProtectedMethod(org.objectweb.asm.ClassWriter writer,
String methodName,
String returnType,
String... argumentTypes) |
protected void |
startPublicClass(org.objectweb.asm.ClassVisitor classWriter,
String className,
org.objectweb.asm.Type superType) |
protected void |
startPublicFinalClass(org.objectweb.asm.ClassVisitor classWriter,
String className,
org.objectweb.asm.Type superType)
Starts a public final class.
|
protected org.objectweb.asm.commons.GeneratorAdapter |
startPublicFinalMethodZeroArgs(org.objectweb.asm.ClassWriter classWriter,
Class returnType,
String methodName) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startPublicMethod(org.objectweb.asm.ClassWriter writer,
org.objectweb.asm.commons.Method asmMethod) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startPublicMethod(org.objectweb.asm.ClassWriter writer,
String methodName,
String returnType,
String... argumentTypes) |
protected org.objectweb.asm.commons.GeneratorAdapter |
startPublicMethodZeroArgs(org.objectweb.asm.ClassWriter classWriter,
Class returnType,
String methodName) |
protected void |
startService(org.objectweb.asm.ClassVisitor classWriter,
Class<?> serviceType,
String internalClassName,
org.objectweb.asm.Type superType) |
protected void |
startService(org.objectweb.asm.ClassVisitor classWriter,
String serviceName,
String internalClassName,
org.objectweb.asm.Type superType,
String... interfaces) |
protected org.objectweb.asm.commons.GeneratorAdapter |
visitStaticInitializer(org.objectweb.asm.ClassVisitor classWriter) |
protected void |
writeBooleanMethod(org.objectweb.asm.ClassWriter classWriter,
String methodName,
Supplier<Boolean> valueSupplier)
Writes a method that returns a boolean value with the value supplied by the given supplier.
|
protected void |
writeClassToDisk(File targetDir,
org.objectweb.asm.ClassWriter classWriter,
String className)
Writes the class file to disk in the given directory.
|
protected void |
writeClassToDisk(OutputStream out,
org.objectweb.asm.ClassWriter classWriter) |
void |
writeTo(File targetDir)
Write the class to the target directory.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
of
accept
protected static final org.objectweb.asm.Type TYPE_ARGUMENT
protected static final org.objectweb.asm.Type TYPE_ARGUMENT_ARRAY
protected static final String ZERO_ARGUMENTS_CONSTANT
protected static final String CONSTRUCTOR_NAME
protected static final String DESCRIPTOR_DEFAULT_CONSTRUCTOR
protected static final org.objectweb.asm.commons.Method METHOD_DEFAULT_CONSTRUCTOR
protected static final org.objectweb.asm.Type TYPE_OBJECT
protected static final org.objectweb.asm.Type TYPE_CLASS
protected static final int DEFAULT_MAX_STACK
protected static final org.objectweb.asm.Type TYPE_GENERATED
protected static final Pattern ARRAY_PATTERN
protected static final org.objectweb.asm.commons.Method METHOD_CREATE_ARGUMENT_SIMPLE
protected static final org.objectweb.asm.commons.Method METHOD_GENERIC_PLACEHOLDER_SIMPLE
protected static final org.objectweb.asm.commons.Method METHOD_CREATE_TYPE_VARIABLE_SIMPLE
protected final OriginatingElements originatingElements
@Deprecated protected AbstractClassFileWriter(Element originatingElement)
AbstractClassFileWriter(Element...)
insteadoriginatingElement
- The originating elementprotected AbstractClassFileWriter(Element... originatingElements)
originatingElements
- The originating elementsprotected AbstractClassFileWriter(OriginatingElements originatingElements)
originatingElements
- The originating elements@NonNull public Element[] getOriginatingElements()
getOriginatingElements
in interface OriginatingElements
public void addOriginatingElement(@NonNull Element element)
OriginatingElements
addOriginatingElement
in interface OriginatingElements
element
- The element to addprotected static void pushTypeArgumentElements(org.objectweb.asm.Type owningType, org.objectweb.asm.ClassWriter owningTypeWriter, org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String declaringElementName, Map<String,ClassElement> types, Map<String,Integer> defaults, Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
owningType
- The owning typeowningTypeWriter
- The declaring class writergeneratorAdapter
- The generator adapterdeclaringElementName
- The declaring class element of the genericstypes
- The type referencesdefaults
- The annotation defaultsloadTypeMethods
- The load type methodsprotected static void buildArgument(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String argumentName, org.objectweb.asm.Type objectType)
generatorAdapter
- The generator adapter.argumentName
- The argument nameobjectType
- The object typeprotected static void buildArgument(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String argumentName, ClassElement objectType)
generatorAdapter
- The generator adapter.argumentName
- The argument nameobjectType
- The object typeprotected static void buildArgumentWithGenerics(org.objectweb.asm.Type owningType, org.objectweb.asm.ClassWriter owningClassWriter, org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String argumentName, org.objectweb.asm.Type typeReference, ClassElement classElement, Map<String,ClassElement> typeArguments, Set<String> visitedTypes, Map<String,Integer> defaults, Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
owningType
- The owning typeowningClassWriter
- The declaring writergeneratorAdapter
- The generator adapter to useargumentName
- The argument nametypeReference
- The type nameclassElement
- The class element that declares the genericstypeArguments
- The nested type argumentsvisitedTypes
- The visited typesdefaults
- The annotation defaultsloadTypeMethods
- The load type methodsprotected static void buildArgumentWithGenerics(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, org.objectweb.asm.Type type, AnnotationMetadataReference annotationMetadata, ClassElement[] generics)
generatorAdapter
- The generator adapter to usetype
- The type that declares the genericsannotationMetadata
- The annotation metadata referencegenerics
- The genericsprotected static void pushBuildArgumentsForMethod(String declaringElementName, org.objectweb.asm.Type owningType, org.objectweb.asm.ClassWriter declaringClassWriter, org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, Collection<ParameterElement> argumentTypes, Map<String,Integer> defaults, Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
declaringElementName
- The declaring element nameowningType
- The owning typedeclaringClassWriter
- The declaring class writergeneratorAdapter
- The GeneratorAdapter
argumentTypes
- The argument typesdefaults
- The annotation defaultsloadTypeMethods
- The load type methodsprotected void pushReturnTypeArgument(org.objectweb.asm.Type owningType, org.objectweb.asm.ClassWriter classWriter, org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String declaringTypeName, ClassElement argument, Map<String,Integer> defaults, Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
owningType
- The owning typeclassWriter
- The declaring class writergeneratorAdapter
- The generator adapterdeclaringTypeName
- The declaring type nameargument
- The argumentdefaults
- The annotation defaultsloadTypeMethods
- The load type methodsprotected static void pushCreateArgument(String declaringTypeName, org.objectweb.asm.Type owningType, org.objectweb.asm.ClassWriter declaringClassWriter, org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, String argumentName, TypedElement typedElement, AnnotationMetadata annotationMetadata, Map<String,ClassElement> typeArguments, Map<String,Integer> defaults, Map<String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods)
declaringTypeName
- The declaring type nameowningType
- The owning typedeclaringClassWriter
- The declaring class writergeneratorAdapter
- The generator adapterargumentName
- The argument nametypedElement
- The typed elementannotationMetadata
- The annotation metadatatypeArguments
- The type argumentsdefaults
- The annotation defaultsloadTypeMethods
- The load type methodspublic void writeTo(File targetDir) throws IOException
targetDir
- The target directoryIOException
- if there is an error writing the fileprotected void writeBooleanMethod(org.objectweb.asm.ClassWriter classWriter, String methodName, Supplier<Boolean> valueSupplier)
classWriter
- The class writermethodName
- The method namevalueSupplier
- The supplier@Nullable public Element getOriginatingElement()
protected void implementInterceptedTypeMethod(org.objectweb.asm.Type interceptedType, org.objectweb.asm.ClassWriter classWriter)
interceptedType
- The intercepted typeclassWriter
- The class writerprotected static String getTypeDescriptor(TypedElement type)
type
- The typeprotected static String getTypeDescriptor(Class<?> type)
type
- The typeprotected static String getTypeDescriptor(String type)
type
- The typeprotected static org.objectweb.asm.Type getTypeReferenceForName(String className, String... genericTypes)
className
- The class namegenericTypes
- The generic typesType
protected static org.objectweb.asm.Type getTypeReference(TypedElement type)
type
- The typeType
protected static void pushBoxPrimitiveIfNecessary(org.objectweb.asm.Type fieldType, org.objectweb.asm.MethodVisitor injectMethodVisitor)
fieldType
- The field typeinjectMethodVisitor
- The MethodVisitor
protected static void pushBoxPrimitiveIfNecessary(Class<?> fieldType, org.objectweb.asm.MethodVisitor injectMethodVisitor)
fieldType
- The field typeinjectMethodVisitor
- The MethodVisitor
protected static void pushBoxPrimitiveIfNecessary(TypedElement fieldType, org.objectweb.asm.MethodVisitor injectMethodVisitor)
fieldType
- The field typeinjectMethodVisitor
- The MethodVisitor
protected static void pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor, org.objectweb.asm.Type type)
methodVisitor
- The MethodVisitor
type
- The typeprotected static void pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor, TypedElement type)
methodVisitor
- The MethodVisitor
type
- The typeprotected static void pushCastToType(org.objectweb.asm.MethodVisitor methodVisitor, Class<?> type)
methodVisitor
- The MethodVisitor
type
- The typeprotected static void pushReturnValue(org.objectweb.asm.MethodVisitor methodVisitor, TypedElement type)
methodVisitor
- The MethodVisitor
type
- The typeprotected static void pushMethodNameAndTypesArguments(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, String methodName, Collection<ClassElement> argumentTypes)
methodVisitor
- The method visitor as GeneratorAdapter
methodName
- The method nameargumentTypes
- The argument typesprotected static void pushNewArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, Class<?> arrayType, int size)
methodVisitor
- The method visitor as GeneratorAdapter
arrayType
- The array classsize
- The sizeprotected static void pushNewArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, org.objectweb.asm.Type arrayType, int size)
methodVisitor
- The method visitor as GeneratorAdapter
arrayType
- The array classsize
- The sizeprotected static void pushStoreStringInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, int index, int size, String string)
methodVisitor
- The method visitor as GeneratorAdapter
index
- The indexsize
- The sizestring
- The stringprotected static void pushStoreInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, int index, int size, Runnable runnable)
methodVisitor
- The method visitor as GeneratorAdapter
index
- The indexsize
- The sizerunnable
- The runnableprotected static void pushStoreInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, org.objectweb.asm.Type type, int index, int size, Runnable runnable)
methodVisitor
- The method visitor as GeneratorAdapter
type
- The type of the arrayindex
- The indexsize
- The sizerunnable
- The runnableprotected static void pushStoreTypeInArray(org.objectweb.asm.commons.GeneratorAdapter methodVisitor, int index, int size, ClassElement type)
methodVisitor
- The method visitor as GeneratorAdapter
index
- The indexsize
- The sizetype
- The typeprotected org.objectweb.asm.Type[] getTypes(Collection<ClassElement> types)
types
- The typesType
of the objectsprotected static org.objectweb.asm.Type getObjectType(Object type)
type
- The typeType
for the object typeprotected static String getTypeDescriptor(String className, String... genericTypes)
className
- The class namegenericTypes
- The generic typesprotected static String getMethodDescriptor(String returnType, String... argumentTypes)
returnType
- The return typeargumentTypes
- The argument typesprotected static String getMethodDescriptor(TypedElement returnType, Collection<? extends TypedElement> argumentTypes)
returnType
- The return typeargumentTypes
- The argument typesprotected static String getMethodDescriptorForReturnType(org.objectweb.asm.Type returnType, Collection<? extends TypedElement> argumentTypes)
returnType
- The return typeargumentTypes
- The argument typesprotected static String getMethodDescriptor(Class<?> returnType, Collection<Class<?>> argumentTypes)
returnType
- The return typeargumentTypes
- The argument typesprotected static String getMethodDescriptor(org.objectweb.asm.Type returnType, Collection<org.objectweb.asm.Type> argumentTypes)
returnType
- The return typeargumentTypes
- The argument typesprotected static String getMethodSignature(String returnTypeReference, String... argReferenceTypes)
returnTypeReference
- The return type referenceargReferenceTypes
- The argument reference typesprotected static String getConstructorDescriptor(Class<?>... argumentTypes)
argumentTypes
- The argument typesprotected static String getConstructorDescriptor(org.objectweb.asm.Type[] argumentTypes)
argumentTypes
- The argument typesprotected static String getConstructorDescriptor(Collection<ParameterElement> argList)
argList
- The argument listprotected void writeClassToDisk(File targetDir, org.objectweb.asm.ClassWriter classWriter, String className) throws IOException
targetDir
- The target directoryclassWriter
- The current class writerclassName
- The class nameIOException
- if there is a problem writing the class to diskprotected void writeClassToDisk(OutputStream out, org.objectweb.asm.ClassWriter classWriter) throws IOException
out
- The output streamclassWriter
- The current class writerIOException
- if there is a problem writing the class to diskprotected org.objectweb.asm.commons.GeneratorAdapter startConstructor(org.objectweb.asm.ClassVisitor classWriter)
classWriter
- The current class writerGeneratorAdapter
for the constructorprotected org.objectweb.asm.commons.GeneratorAdapter startConstructor(org.objectweb.asm.ClassVisitor classWriter, Class<?>... argumentTypes)
classWriter
- The current class writerargumentTypes
- The argument typesGeneratorAdapter
for the constructorprotected void startClass(org.objectweb.asm.ClassVisitor classWriter, String className, org.objectweb.asm.Type superType)
classWriter
- The current class writerclassName
- The class namesuperType
- The super typeprotected void startPublicClass(org.objectweb.asm.ClassVisitor classWriter, String className, org.objectweb.asm.Type superType)
classWriter
- The current class writerclassName
- The class namesuperType
- The super typeprotected void startService(org.objectweb.asm.ClassVisitor classWriter, Class<?> serviceType, String internalClassName, org.objectweb.asm.Type superType)
classWriter
- The current class writerserviceType
- The service typeinternalClassName
- The class namesuperType
- The super typeprotected void startService(org.objectweb.asm.ClassVisitor classWriter, String serviceName, String internalClassName, org.objectweb.asm.Type superType, String... interfaces)
classWriter
- The current class writerserviceName
- The service nameinternalClassName
- The class namesuperType
- The super typeinterfaces
- The interfacesprotected void startFinalClass(org.objectweb.asm.ClassVisitor classWriter, String className, org.objectweb.asm.Type superType)
classWriter
- The current class writerclassName
- The class namesuperType
- The super typeprotected void startPublicFinalClass(org.objectweb.asm.ClassVisitor classWriter, String className, org.objectweb.asm.Type superType)
classWriter
- The current class writerclassName
- The class namesuperType
- The super typeprotected void startClass(org.objectweb.asm.ClassWriter classWriter, String className, org.objectweb.asm.Type superType, String genericSignature)
classWriter
- The current class writerclassName
- The class namesuperType
- The super typegenericSignature
- The generic signatureprotected void invokeConstructor(org.objectweb.asm.MethodVisitor cv, Class superClass, Class... argumentTypes)
cv
- The constructor visitorsuperClass
- The super classargumentTypes
- The argument typesprotected static void invokeInterfaceStaticMethod(org.objectweb.asm.MethodVisitor visitor, Class targetType, org.objectweb.asm.commons.Method method)
visitor
- The interface visitortargetType
- The target typemethod
- The methodprotected org.objectweb.asm.commons.GeneratorAdapter startPublicMethodZeroArgs(org.objectweb.asm.ClassWriter classWriter, Class returnType, String methodName)
classWriter
- The current class writerreturnType
- The return typemethodName
- The method nameGeneratorAdapter
for the methodprotected org.objectweb.asm.commons.GeneratorAdapter startPublicFinalMethodZeroArgs(org.objectweb.asm.ClassWriter classWriter, Class returnType, String methodName)
classWriter
- The current class writerreturnType
- The return typemethodName
- The method nameGeneratorAdapter
for the methodprotected static String getInternalName(String className)
className
- The class nameprotected static String getInternalNameForCast(TypedElement type)
type
- The typeprotected static String getInternalNameForCast(Class<?> typeClass)
typeClass
- The typeprotected static String getInternalNameForCast(org.objectweb.asm.Type type)
type
- The typeprotected String getClassFileName(String className)
className
- The class nameprotected ClassWriterOutputVisitor newClassWriterOutputVisitor(File compilationDir)
compilationDir
- The compilation directoryprotected void returnVoid(org.objectweb.asm.commons.GeneratorAdapter overriddenMethodGenerator)
overriddenMethodGenerator
- The overridden method generatorprotected org.objectweb.asm.commons.GeneratorAdapter visitStaticInitializer(org.objectweb.asm.ClassVisitor classWriter)
classWriter
- The current class writerGeneratorAdapter
protected org.objectweb.asm.commons.GeneratorAdapter startPublicMethod(org.objectweb.asm.ClassWriter writer, String methodName, String returnType, String... argumentTypes)
writer
- The class writermethodName
- The method namereturnType
- The return typeargumentTypes
- The argument typesGeneratorAdapter
protected org.objectweb.asm.commons.GeneratorAdapter startPublicMethod(org.objectweb.asm.ClassWriter writer, org.objectweb.asm.commons.Method asmMethod)
writer
- The class writerasmMethod
- The asm methodGeneratorAdapter
protected org.objectweb.asm.commons.GeneratorAdapter startProtectedMethod(org.objectweb.asm.ClassWriter writer, String methodName, String returnType, String... argumentTypes)
writer
- The class writermethodName
- The method namereturnType
- The return typeargumentTypes
- The argument typesGeneratorAdapter
protected void generateServiceDescriptor(String className, GeneratedFile generatedFile) throws IOException
className
- The class namegeneratedFile
- The generated fileIOException
- An exception if an error occursprotected void pushNewInstance(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, org.objectweb.asm.Type typeToInstantiate)
generatorAdapter
- The generator adaptortypeToInstantiate
- The type to instantiate.@NonNull protected ClassElement invokeMethod(@NonNull org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, @NonNull MethodElement method)
generatorAdapter
- The generator adaptermethod
- The method to invokepublic static <T> void pushStringMapOf(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, Map<? extends CharSequence,T> annotationData, boolean skipEmpty, T empty, Consumer<T> pushValue)