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,ExecutableMethodWriter
@Internal public abstract class AbstractAnnotationMetadataWriter extends AbstractClassFileWriter
Base class for types that also writeAnnotationMetadata.- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description protected io.micronaut.core.annotation.AnnotationMetadataannotationMetadataprotected java.util.Map<java.lang.String,java.lang.Integer>defaultsstatic java.lang.StringFIELD_ANNOTATION_METADATAField name for annotation metadata.protected java.util.Map<java.lang.String,org.objectweb.asm.commons.GeneratorAdapter>loadTypeMethodsprotected org.objectweb.asm.TypetargetClassType-
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, V9
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractAnnotationMetadataWriter(java.lang.String className, Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults)protectedAbstractAnnotationMetadataWriter(java.lang.String className, OriginatingElements originatingElements, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.objectweb.asm.commons.GeneratorAdapterbeginAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter)Returns the generator adaptor for the method that resolves the annotation metadata.protected voidinitializeAnnotationMetadata(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, java.util.Map<java.lang.String,java.lang.Integer> defaults)protected voidwriteAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter)protected voidwriteAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter, java.util.Map<java.lang.String,java.lang.Integer> defaults)protected voidwriteGetAnnotationMetadataMethod(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, 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, 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 Detail
-
FIELD_ANNOTATION_METADATA
public static final java.lang.String FIELD_ANNOTATION_METADATA
Field name for annotation metadata.- See Also:
- Constant Field Values
-
targetClassType
protected final org.objectweb.asm.Type targetClassType
-
annotationMetadata
protected final io.micronaut.core.annotation.AnnotationMetadata annotationMetadata
-
loadTypeMethods
protected final java.util.Map<java.lang.String,org.objectweb.asm.commons.GeneratorAdapter> loadTypeMethods
-
defaults
protected final java.util.Map<java.lang.String,java.lang.Integer> defaults
-
-
Constructor Detail
-
AbstractAnnotationMetadataWriter
protected AbstractAnnotationMetadataWriter(java.lang.String className, OriginatingElements originatingElements, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults)- Parameters:
className- The class nameoriginatingElements- The originating elementsannotationMetadata- The annotation metadatawriteAnnotationDefaults- Whether to write annotation defaults
-
AbstractAnnotationMetadataWriter
protected AbstractAnnotationMetadataWriter(java.lang.String className, Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults)- Parameters:
className- The class nameoriginatingElement- The originating elementannotationMetadata- The annotation metadatawriteAnnotationDefaults- Whether to write annotation defaults
-
-
Method Detail
-
writeGetAnnotationMetadataMethod
protected void writeGetAnnotationMetadataMethod(org.objectweb.asm.ClassWriter classWriter)
- Parameters:
classWriter- TheClassWriter
-
beginAnnotationMetadataMethod
@NonNull protected 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, java.util.Map<java.lang.String,java.lang.Integer> defaults)- Parameters:
classWriter- TheClassWriterdefaults- The annotation defaults
-
initializeAnnotationMetadata
protected void initializeAnnotationMetadata(org.objectweb.asm.commons.GeneratorAdapter staticInit, org.objectweb.asm.ClassWriter classWriter, java.util.Map<java.lang.String,java.lang.Integer> defaults)- Parameters:
staticInit- TheGeneratorAdapterclassWriter- TheClassWriterdefaults- The annotation defaults
-
-