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.AnnotationMetadata
annotationMetadata
protected java.util.Map<java.lang.String,java.lang.Integer>
defaults
static java.lang.String
FIELD_ANNOTATION_METADATA
Field name for annotation metadata.protected java.util.Map<java.lang.String,org.objectweb.asm.commons.GeneratorAdapter>
loadTypeMethods
protected org.objectweb.asm.Type
targetClassType
-
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 protected
AbstractAnnotationMetadataWriter(java.lang.String className, Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, boolean writeAnnotationDefaults)
protected
AbstractAnnotationMetadataWriter(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.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, java.util.Map<java.lang.String,java.lang.Integer> defaults)
protected void
writeAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter)
protected void
writeAnnotationMetadataStaticInitializer(org.objectweb.asm.ClassWriter classWriter, java.util.Map<java.lang.String,java.lang.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, 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
- TheClassWriter
defaults
- 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
- TheGeneratorAdapter
classWriter
- TheClassWriter
defaults
- The annotation defaults
-
-