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
,BeanDefinitionReferenceWriter
Base class for types that also write
AnnotationMetadata
.- Since:
- 1.0
- Author:
- Graeme Rocher
-
Field Summary
FieldsModifier 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, V9
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
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.protected void
initializeAnnotationMetadata
(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, Map<String, Integer> defaults) 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, buildArgument, buildArgument, buildArgumentWithGenerics, buildArgumentWithGenerics, generateServiceDescriptor, getClassFileName, getConstructorDescriptor, getConstructorDescriptor, getConstructorDescriptor, getInternalName, getInternalNameForCast, getInternalNameForCast, getInternalNameForCast, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptor, getMethodDescriptorForReturnType, getMethodSignature, getObjectType, getOriginatingElement, getOriginatingElements, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getTypeReference, getTypeReferenceForName, getTypes, implementInterceptedTypeMethod, invokeConstructor, invokeInterfaceStaticMethod, invokeMethod, newClassWriterOutputVisitor, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBoxPrimitiveIfNecessary, pushBuildArgumentsForMethod, pushCastToType, pushCastToType, pushCastToType, pushCreateArgument, pushListOfString, pushMethodNameAndTypesArguments, pushNewArray, pushNewArray, pushNewInstance, pushReturnTypeArgument, pushReturnValue, pushStoreInArray, pushStoreInArray, pushStoreStringInArray, pushStoreTypeInArray, pushStringMapOf, pushTypeArgumentElements, returnVoid, startClass, startClass, startConstructor, startConstructor, startFinalClass, startProtectedMethod, startPublicClass, startPublicFinalClass, startPublicFinalMethodZeroArgs, startPublicMethod, startPublicMethod, startPublicMethodZeroArgs, startService, startService, toTypeString, visitStaticInitializer, writeBooleanMethod, writeClassToDisk, 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
-
initializeAnnotationMetadata
protected void initializeAnnotationMetadata(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, Map<String, Integer> defaults) - Parameters:
staticInit
- TheGeneratorAdapter
classWriter
- TheClassWriter
defaults
- The annotation defaults
-