Package io.micronaut.inject.writer
Class AbstractAnnotationMetadataWriter
java.lang.Object
io.micronaut.inject.writer.AbstractClassFileWriter
io.micronaut.inject.writer.AbstractAnnotationMetadataWriter
- All Implemented Interfaces:
ClassOutputWriter
,OriginatingElements
,org.objectweb.asm.Opcodes
- Direct Known Subclasses:
BeanConfigurationWriter
Base class for types that also write
AnnotationMetadata
.- Since:
- 1.0
- Author:
- Graeme Rocher
-
Field Summary
Modifier and TypeFieldDescriptionprotected final AnnotationMetadata
protected final EvaluatedExpressionProcessor
static final String
Field name for annotation metadata.static final String
Field name for empty metadata.protected final org.objectweb.asm.Type
Fields inherited from class io.micronaut.inject.writer.AbstractClassFileWriter
ARRAY_PATTERN, CONSTRUCTOR_NAME, DEFAULT_MAX_STACK, DESCRIPTOR_DEFAULT_CONSTRUCTOR, METHOD_CREATE_ARGUMENT_SIMPLE, METHOD_CREATE_TYPE_VARIABLE_SIMPLE, METHOD_DEFAULT_CONSTRUCTOR, METHOD_GENERIC_PLACEHOLDER_SIMPLE, originatingElements, TYPE_ARGUMENT, TYPE_ARGUMENT_ARRAY, TYPE_CLASS, TYPE_GENERATED, TYPE_OBJECT, ZERO_ARGUMENTS_CONSTANT
Fields inherited from interface org.objectweb.asm.Opcodes
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, V20, V21, V22, V23, V24, V9
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractAnnotationMetadataWriter
(String className, Element originatingElement, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) protected
AbstractAnnotationMetadataWriter
(String className, OriginatingElements originatingElements, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) -
Method Summary
Modifier and TypeMethodDescriptionprotected @NonNull org.objectweb.asm.commons.GeneratorAdapter
beginAnnotationMetadataMethod
(org.objectweb.asm.ClassWriter classWriter) Returns the generator adaptor for the method that resolves the annotation metadata.static void
initializeAnnotationMetadata
(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, org.objectweb.asm.Type targetClassType, AnnotationMetadata annotationMetadata, Map<String, Integer> defaults, Map<String, org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods) static void
writeAnnotationDefault
(org.objectweb.asm.ClassWriter classWriter, org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.Type targetClassType, AnnotationMetadata annotationMetadata, Map<String, Integer> defaults, Map<String, org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods) protected void
writeAnnotationMetadataStaticInitializer
(org.objectweb.asm.ClassWriter classWriter) protected void
writeAnnotationMetadataStaticInitializer
(org.objectweb.asm.ClassWriter classWriter, Map<String, Integer> defaults) protected void
writeGetAnnotationMetadataMethod
(org.objectweb.asm.ClassWriter classWriter) Methods inherited from class io.micronaut.inject.writer.AbstractClassFileWriter
addOriginatingElement, annotateAsGeneratedAndService, buildArgument, buildArgument, buildArgumentWithGenerics, buildArgumentWithGenerics, getConstructorDescriptor, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptorForReturnType, getMethodSignature, getObjectType, getOriginatingElement, getOriginatingElements, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeReference, getTypeReferenceForName, implementInterceptedTypeMethod, invokeConstructor, invokeInterfaceStaticMethod, newClassWriterOutputVisitor, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBuildArgumentsForMethod, pushCastFromObjectToType, pushCastToType, pushCastToType, pushCastToType, pushCastToType, pushCreateArgument, pushCreateArgument, pushListOfString, pushMethodNameAndTypesArguments, pushNewArray, pushNewArray, pushNewArray, pushNewArray, pushNewArray, pushNewArrayIndexed, pushNewInstance, pushReturnTypeArgument, pushStoreInArray, pushStoreInArray, pushStringMapOf, pushTypeArgumentElements, startClass, startConstructor, startConstructor, startProtectedMethod, startPublicClass, startPublicFinalMethodZeroArgs, startPublicMethod, startPublicMethod, startPublicMethod, startPublicMethodZeroArgs, startService, startService, toTypeString, visitStaticInitializer, writeClassToDisk, writeTo
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.inject.writer.ClassOutputWriter
accept
-
Field Details
-
FIELD_ANNOTATION_METADATA
Field name for annotation metadata.- See Also:
-
FIELD_EMPTY_METADATA
Field name for empty metadata.- See Also:
-
targetClassType
protected final org.objectweb.asm.Type targetClassType -
annotationMetadata
-
loadTypeMethods
-
defaults
-
evaluatedExpressionProcessor
-
-
Constructor Details
-
AbstractAnnotationMetadataWriter
protected AbstractAnnotationMetadataWriter(String className, OriginatingElements originatingElements, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) - Parameters:
className
- The class nameoriginatingElements
- The originating elementsannotationMetadata
- The annotation metadatawriteAnnotationDefaults
- Whether to write annotation defaultsvisitorContext
- The visitor context
-
AbstractAnnotationMetadataWriter
protected AbstractAnnotationMetadataWriter(String className, Element originatingElement, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) - Parameters:
className
- The class nameoriginatingElement
- The originating elementannotationMetadata
- The annotation metadatawriteAnnotationDefaults
- Whether to write annotation defaultsvisitorContext
- The visitor context
-
-
Method Details
-
writeGetAnnotationMetadataMethod
protected void writeGetAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter) - Parameters:
classWriter
- TheClassWriter
-
beginAnnotationMetadataMethod
@NonNull protected @NonNull org.objectweb.asm.commons.GeneratorAdapter beginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter) Returns the generator adaptor for the method that resolves the annotation metadata.- Parameters:
classWriter
- The class writer- Returns:
- The generator adapter
-
writeAnnotationMetadataStaticInitializer
protected void writeAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter) - Parameters:
classWriter
- TheClassWriter
-
writeAnnotationMetadataStaticInitializer
protected void writeAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter, Map<String, Integer> defaults) - Parameters:
classWriter
- TheClassWriter
defaults
- The annotation defaults
-
writeAnnotationDefault
public static void writeAnnotationDefault(org.objectweb.asm.ClassWriter classWriter, org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.Type targetClassType, AnnotationMetadata annotationMetadata, Map<String, Integer> defaults, Map<String, org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods) - Parameters:
classWriter
- The class writerstaticInit
- The static inittargetClassType
- The targetClassTypeannotationMetadata
- The annotation metadatadefaults
- The defaultsloadTypeMethods
- The loadTypeMethods
-
initializeAnnotationMetadata
public static void initializeAnnotationMetadata(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, org.objectweb.asm.Type targetClassType, AnnotationMetadata annotationMetadata, Map<String, Integer> defaults, Map<String, org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods) - Parameters:
staticInit
- TheGeneratorAdapter
classWriter
- TheClassWriter
targetClassType
- The targetClassTypeannotationMetadata
- The annotation metadatadefaults
- The annotation defaultsloadTypeMethods
- The loadTypeMethods
-