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
FieldsModifier and TypeFieldDescriptionprotected final AnnotationMetadataprotected final EvaluatedExpressionProcessorstatic final StringField name for annotation metadata.static final StringField name for empty metadata.protected final org.objectweb.asm.TypeFields 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_CONSTANTFields 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
ConstructorsModifierConstructorDescriptionprotectedAbstractAnnotationMetadataWriter(String className, Element originatingElement, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) protectedAbstractAnnotationMetadataWriter(String className, OriginatingElements originatingElements, AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults, VisitorContext visitorContext) -
Method Summary
Modifier and TypeMethodDescriptionprotected @NonNull org.objectweb.asm.commons.GeneratorAdapterbeginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter) Returns the generator adaptor for the method that resolves the annotation metadata.static voidinitializeAnnotationMetadata(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 voidwriteAnnotationDefault(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 voidwriteAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter) protected voidwriteAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter, Map<String, Integer> defaults) protected voidwriteGetAnnotationMetadataMethod(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, writeToMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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- TheClassWriterdefaults- 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- TheGeneratorAdapterclassWriter- TheClassWritertargetClassType- The targetClassTypeannotationMetadata- The annotation metadatadefaults- The annotation defaultsloadTypeMethods- The loadTypeMethods
-