Package io.micronaut.aop.writer
Class AopProxyWriter
- java.lang.Object
-
- io.micronaut.inject.writer.AbstractClassFileWriter
-
- io.micronaut.aop.writer.AopProxyWriter
-
- All Implemented Interfaces:
io.micronaut.core.util.Toggleable,io.micronaut.inject.writer.BeanDefinitionVisitor,io.micronaut.inject.writer.ClassOutputWriter,io.micronaut.inject.writer.OriginatingElements,io.micronaut.inject.writer.ProxyingBeanDefinitionVisitor,org.objectweb.asm.Opcodes
public class AopProxyWriter extends io.micronaut.inject.writer.AbstractClassFileWriter implements io.micronaut.inject.writer.ProxyingBeanDefinitionVisitor, io.micronaut.core.util.ToggleableA class that generates AOP proxy classes at compile time.- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringFIELD_BEAN_RESOLUTION_CONTEXTstatic java.lang.StringFIELD_READ_LOCKstatic java.lang.StringFIELD_READ_WRITE_LOCKstatic java.lang.StringFIELD_TARGETstatic org.objectweb.asm.TypeFIELD_TYPE_INTERCEPTORSstatic java.lang.StringFIELD_WRITE_LOCKstatic intMAX_LOCALSstatic org.objectweb.asm.commons.MethodMETHOD_GET_PROXY_TARGETstatic org.objectweb.asm.commons.MethodMETHOD_GET_PROXY_TARGET_BEANstatic org.objectweb.asm.commons.MethodMETHOD_GET_PROXY_TARGET_BEAN_WITH_CONTEXTstatic org.objectweb.asm.commons.MethodMETHOD_HAS_CACHED_INTERCEPTED_METHODstatic org.objectweb.asm.TypeTYPE_BEAN_LOCATORstatic org.objectweb.asm.TypeTYPE_DEFAULT_BEAN_CONTEXTstatic org.objectweb.asm.TypeTYPE_INTERCEPTOR_CHAINstatic org.objectweb.asm.TypeTYPE_LOCKstatic org.objectweb.asm.TypeTYPE_METHOD_INTERCEPTOR_CHAINstatic org.objectweb.asm.TypeTYPE_READ_WRITE_LOCK-
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, V9
-
-
Constructor Summary
Constructors Constructor Description AopProxyWriter(io.micronaut.inject.writer.BeanDefinitionWriter parent, io.micronaut.core.value.OptionalValues<java.lang.Boolean> settings, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a newAopProxyWriterfor the given parentBeanDefinitionWriterand starting interceptors types.AopProxyWriter(java.lang.String packageName, java.lang.String className, boolean isInterface, boolean implementInterface, io.micronaut.inject.ast.Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.ast.ClassElement[] interfaceTypes, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.configuration.ConfigurationMetadata configurationMetadata, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a newAopProxyWriterfor the purposes of writingIntroductionadvise.AopProxyWriter(java.lang.String packageName, java.lang.String className, boolean isInterface, io.micronaut.inject.ast.Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.ast.ClassElement[] interfaceTypes, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.configuration.ConfigurationMetadata configurationMetadata, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a newAopProxyWriterfor the purposes of writingIntroductionadvise.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaccept(io.micronaut.inject.writer.ClassWriterOutputVisitor visitor)Write the class to output via a visitor that manages output destination.io.micronaut.core.annotation.AnnotationMetadatagetAnnotationMetadata()java.lang.StringgetBeanDefinitionName()java.lang.StringgetBeanDefinitionReferenceClassName()java.lang.StringgetBeanSimpleName()java.lang.StringgetBeanTypeName()java.util.Optional<org.objectweb.asm.Type>getInterceptedType()io.micronaut.inject.ast.ElementgetOriginatingElement()Deprecated.java.lang.StringgetPackageName()org.objectweb.asm.TypegetProvidedType()java.lang.StringgetProxiedBeanDefinitionName()java.lang.StringgetProxiedTypeName()io.micronaut.inject.ast.ClassElement[]getTypeArguments()booleanisEnabled()booleanisInterface()booleanisProxyTarget()Is the target bean being proxied.booleanisSingleton()booleanisValidated()booleanrequiresMethodProcessing()voidsetInterceptedType(java.lang.String typeName)voidsetRequiresMethodProcessing(boolean shouldPreProcess)voidsetValidated(boolean validated)protected voidstartClass(org.objectweb.asm.ClassVisitor classWriter, java.lang.String className, org.objectweb.asm.Type superType)voidvisitAnnotationMemberPropertyInjectionPoint(io.micronaut.inject.ast.TypedElement annotationMemberBeanType, java.lang.String annotationMemberProperty, java.lang.String requiredValue, java.lang.String notEqualsValue)voidvisitAroundMethod(io.micronaut.inject.ast.TypedElement beanType, io.micronaut.inject.ast.MethodElement methodElement)Visit a method that is to be proxied.voidvisitBeanDefinitionConstructor(io.micronaut.inject.ast.MethodElement constructor, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)Visits a constructor.voidvisitBeanDefinitionEnd()Finalizes the proxy.voidvisitBeanDefinitionInterface(java.lang.Class<? extends io.micronaut.inject.BeanDefinition> interfaceType)voidvisitBeanFactoryField(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.FieldElement factoryField)voidvisitBeanFactoryMethod(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.MethodElement factoryMethod)voidvisitBeanFactoryMethod(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.MethodElement factoryMethod, io.micronaut.inject.ast.ParameterElement[] parameters)voidvisitConfigBuilderDurationMethod(java.lang.String prefix, io.micronaut.inject.ast.ClassElement returnType, java.lang.String methodName, java.lang.String propertyPath)voidvisitConfigBuilderEnd()voidvisitConfigBuilderField(io.micronaut.inject.ast.ClassElement type, java.lang.String field, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.configuration.ConfigurationMetadataBuilder metadataBuilder, boolean isInterface)voidvisitConfigBuilderMethod(io.micronaut.inject.ast.ClassElement type, java.lang.String methodName, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.configuration.ConfigurationMetadataBuilder metadataBuilder, boolean isInterface)voidvisitConfigBuilderMethod(java.lang.String prefix, io.micronaut.inject.ast.ClassElement returnType, java.lang.String methodName, io.micronaut.inject.ast.ClassElement paramType, java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement> generics, java.lang.String propertyPath)voidvisitDefaultConstructor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.visitor.VisitorContext visitorContext)intvisitExecutableMethod(io.micronaut.inject.ast.TypedElement declaringBean, io.micronaut.inject.ast.MethodElement methodElement, io.micronaut.inject.visitor.VisitorContext visitorContext)voidvisitFieldInjectionPoint(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.FieldElement fieldType, boolean requiresReflection)voidvisitFieldValue(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.FieldElement fieldType, boolean requiresReflection, boolean isOptional)voidvisitInterceptorBinding(io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)visitInterceptorTypes.voidvisitIntroductionMethod(io.micronaut.inject.ast.TypedElement declaringBean, io.micronaut.inject.ast.MethodElement methodElement)Visit a abstract method that is to be implemented.voidvisitMethodInjectionPoint(io.micronaut.inject.ast.TypedElement beanType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)voidvisitPostConstructMethod(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)voidvisitPreDestroyMethod(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)voidvisitSetterValue(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, boolean isOptional)voidvisitSuperBeanDefinition(java.lang.String name)voidvisitSuperBeanDefinitionFactory(java.lang.String beanName)voidvisitTypeArguments(java.util.Map<java.lang.String,java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement>> typeArguments)voidwriteTo(java.io.File compilationDir)Write the proxy to the given compilation directory.-
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, 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, startConstructor, startConstructor, startFinalClass, startProtectedMethod, startPublicClass, startPublicFinalClass, startPublicFinalMethodZeroArgs, startPublicMethod, startPublicMethod, startPublicMethodZeroArgs, startService, startService, visitStaticInitializer, writeBooleanMethod, writeClassToDisk, writeClassToDisk
-
-
-
-
Field Detail
-
MAX_LOCALS
public static final int MAX_LOCALS
- See Also:
- Constant Field Values
-
METHOD_GET_PROXY_TARGET
public static final org.objectweb.asm.commons.Method METHOD_GET_PROXY_TARGET
-
METHOD_GET_PROXY_TARGET_BEAN_WITH_CONTEXT
public static final org.objectweb.asm.commons.Method METHOD_GET_PROXY_TARGET_BEAN_WITH_CONTEXT
-
METHOD_GET_PROXY_TARGET_BEAN
public static final org.objectweb.asm.commons.Method METHOD_GET_PROXY_TARGET_BEAN
-
METHOD_HAS_CACHED_INTERCEPTED_METHOD
public static final org.objectweb.asm.commons.Method METHOD_HAS_CACHED_INTERCEPTED_METHOD
-
FIELD_TYPE_INTERCEPTORS
public static final org.objectweb.asm.Type FIELD_TYPE_INTERCEPTORS
-
TYPE_INTERCEPTOR_CHAIN
public static final org.objectweb.asm.Type TYPE_INTERCEPTOR_CHAIN
-
TYPE_METHOD_INTERCEPTOR_CHAIN
public static final org.objectweb.asm.Type TYPE_METHOD_INTERCEPTOR_CHAIN
-
FIELD_TARGET
public static final java.lang.String FIELD_TARGET
- See Also:
- Constant Field Values
-
FIELD_BEAN_RESOLUTION_CONTEXT
public static final java.lang.String FIELD_BEAN_RESOLUTION_CONTEXT
- See Also:
- Constant Field Values
-
FIELD_READ_WRITE_LOCK
public static final java.lang.String FIELD_READ_WRITE_LOCK
- See Also:
- Constant Field Values
-
TYPE_READ_WRITE_LOCK
public static final org.objectweb.asm.Type TYPE_READ_WRITE_LOCK
-
FIELD_READ_LOCK
public static final java.lang.String FIELD_READ_LOCK
- See Also:
- Constant Field Values
-
FIELD_WRITE_LOCK
public static final java.lang.String FIELD_WRITE_LOCK
- See Also:
- Constant Field Values
-
TYPE_LOCK
public static final org.objectweb.asm.Type TYPE_LOCK
-
TYPE_BEAN_LOCATOR
public static final org.objectweb.asm.Type TYPE_BEAN_LOCATOR
-
TYPE_DEFAULT_BEAN_CONTEXT
public static final org.objectweb.asm.Type TYPE_DEFAULT_BEAN_CONTEXT
-
-
Constructor Detail
-
AopProxyWriter
public AopProxyWriter(io.micronaut.inject.writer.BeanDefinitionWriter parent, io.micronaut.core.value.OptionalValues<java.lang.Boolean> settings, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a new
AopProxyWriterfor the given parentBeanDefinitionWriterand starting interceptors types.Additional
Interceptortypes can be added downstream withvisitInterceptorBinding(AnnotationValue[]).- Parameters:
parent- The parentBeanDefinitionWritersettings- optional settingmetadataBuilder- The configuration metadata buildervisitorContext- The visitor contextinterceptorBinding- The interceptor binding of theInterceptorinstances to be injected
-
AopProxyWriter
public AopProxyWriter(java.lang.String packageName, java.lang.String className, boolean isInterface, io.micronaut.inject.ast.Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.ast.ClassElement[] interfaceTypes, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.configuration.ConfigurationMetadata configurationMetadata, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a newAopProxyWriterfor the purposes of writingIntroductionadvise.- Parameters:
packageName- The package nameclassName- The class nameisInterface- Is the target of the advise an interfaceoriginatingElement- The originating elementannotationMetadata- The annotation metadatainterfaceTypes- The additional interfaces to implementvisitorContext- The visitor contextmetadataBuilder- The configuration metadata builderconfigurationMetadata- The configuration metadata for the classinterceptorBinding- The interceptor types
-
AopProxyWriter
public AopProxyWriter(java.lang.String packageName, java.lang.String className, boolean isInterface, boolean implementInterface, io.micronaut.inject.ast.Element originatingElement, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.ast.ClassElement[] interfaceTypes, io.micronaut.inject.visitor.VisitorContext visitorContext, io.micronaut.inject.configuration.ConfigurationMetadataBuilder<?> metadataBuilder, io.micronaut.inject.configuration.ConfigurationMetadata configurationMetadata, io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)Constructs a newAopProxyWriterfor the purposes of writingIntroductionadvise.- Parameters:
packageName- The package nameclassName- The class nameisInterface- Is the target of the advise an interfaceimplementInterface- Whether the interface should be implemented. If false theinterfaceTypesargument should contain at least one entryoriginatingElement- The originating elementsannotationMetadata- The annotation metadatainterfaceTypes- The additional interfaces to implementvisitorContext- The visitor contextmetadataBuilder- The configuration metadata builderconfigurationMetadata- The configuration metadata for the classinterceptorBinding- The interceptor binding
-
-
Method Detail
-
isEnabled
public boolean isEnabled()
- Specified by:
isEnabledin interfaceio.micronaut.core.util.Toggleable
-
isProxyTarget
public boolean isProxyTarget()
Is the target bean being proxied.- Returns:
- True if the target bean is being proxied
-
startClass
protected void startClass(org.objectweb.asm.ClassVisitor classWriter, java.lang.String className, org.objectweb.asm.Type superType)- Overrides:
startClassin classio.micronaut.inject.writer.AbstractClassFileWriter
-
getOriginatingElement
@Deprecated public io.micronaut.inject.ast.Element getOriginatingElement()
Deprecated.- Specified by:
getOriginatingElementin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor- Overrides:
getOriginatingElementin classio.micronaut.inject.writer.AbstractClassFileWriter
-
visitBeanFactoryMethod
public void visitBeanFactoryMethod(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.MethodElement factoryMethod)- Specified by:
visitBeanFactoryMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitBeanFactoryMethod
public void visitBeanFactoryMethod(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.MethodElement factoryMethod, io.micronaut.inject.ast.ParameterElement[] parameters)- Specified by:
visitBeanFactoryMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitBeanFactoryField
public void visitBeanFactoryField(io.micronaut.inject.ast.ClassElement factoryClass, io.micronaut.inject.ast.FieldElement factoryField)- Specified by:
visitBeanFactoryFieldin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
isSingleton
public boolean isSingleton()
- Specified by:
isSingletonin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
isInterface
public boolean isInterface()
- Specified by:
isInterfacein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitBeanDefinitionInterface
public void visitBeanDefinitionInterface(java.lang.Class<? extends io.micronaut.inject.BeanDefinition> interfaceType)
- Specified by:
visitBeanDefinitionInterfacein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getBeanTypeName
public java.lang.String getBeanTypeName()
- Specified by:
getBeanTypeNamein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getProvidedType
public org.objectweb.asm.Type getProvidedType()
- Specified by:
getProvidedTypein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
setValidated
public void setValidated(boolean validated)
- Specified by:
setValidatedin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
setInterceptedType
public void setInterceptedType(java.lang.String typeName)
- Specified by:
setInterceptedTypein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getInterceptedType
public java.util.Optional<org.objectweb.asm.Type> getInterceptedType()
- Specified by:
getInterceptedTypein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
isValidated
public boolean isValidated()
- Specified by:
isValidatedin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getBeanDefinitionName
public java.lang.String getBeanDefinitionName()
- Specified by:
getBeanDefinitionNamein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitBeanDefinitionConstructor
public void visitBeanDefinitionConstructor(io.micronaut.inject.ast.MethodElement constructor, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)Visits a constructor.- Specified by:
visitBeanDefinitionConstructorin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor- Parameters:
constructor- The constructorrequiresReflection- Whether reflection is requiredvisitorContext- The visitor context
-
visitDefaultConstructor
public void visitDefaultConstructor(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.visitor.VisitorContext visitorContext)- Specified by:
visitDefaultConstructorin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getBeanDefinitionReferenceClassName
@NonNull public java.lang.String getBeanDefinitionReferenceClassName()
- Specified by:
getBeanDefinitionReferenceClassNamein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitIntroductionMethod
public void visitIntroductionMethod(io.micronaut.inject.ast.TypedElement declaringBean, io.micronaut.inject.ast.MethodElement methodElement)Visit a abstract method that is to be implemented.- Parameters:
declaringBean- The declaring bean of the method.methodElement- The method element
-
visitAroundMethod
public void visitAroundMethod(io.micronaut.inject.ast.TypedElement beanType, io.micronaut.inject.ast.MethodElement methodElement)Visit a method that is to be proxied.- Parameters:
beanType- The bean type.methodElement- The method element
-
visitBeanDefinitionEnd
public void visitBeanDefinitionEnd()
Finalizes the proxy. This method should be called before writing the proxy to disk withwriteTo(File)- Specified by:
visitBeanDefinitionEndin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
writeTo
public void writeTo(java.io.File compilationDir) throws java.io.IOExceptionWrite the proxy to the given compilation directory.- Specified by:
writeToin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor- Overrides:
writeToin classio.micronaut.inject.writer.AbstractClassFileWriter- Parameters:
compilationDir- The target compilation directory- Throws:
java.io.IOException- If an error occurs writing the file
-
getTypeArguments
@NonNull public io.micronaut.inject.ast.ClassElement[] getTypeArguments()
- Specified by:
getTypeArgumentsin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
accept
public void accept(io.micronaut.inject.writer.ClassWriterOutputVisitor visitor) throws java.io.IOExceptionWrite the class to output via a visitor that manages output destination.- Specified by:
acceptin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor- Specified by:
acceptin interfaceio.micronaut.inject.writer.ClassOutputWriter- Parameters:
visitor- the writer output visitor- Throws:
java.io.IOException- If an error occurs
-
visitSuperBeanDefinition
public void visitSuperBeanDefinition(java.lang.String name)
- Specified by:
visitSuperBeanDefinitionin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitSuperBeanDefinitionFactory
public void visitSuperBeanDefinitionFactory(java.lang.String beanName)
- Specified by:
visitSuperBeanDefinitionFactoryin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitSetterValue
public void visitSetterValue(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, boolean isOptional)- Specified by:
visitSetterValuein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitPostConstructMethod
public void visitPostConstructMethod(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)- Specified by:
visitPostConstructMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitPreDestroyMethod
public void visitPreDestroyMethod(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)- Specified by:
visitPreDestroyMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitMethodInjectionPoint
public void visitMethodInjectionPoint(io.micronaut.inject.ast.TypedElement beanType, io.micronaut.inject.ast.MethodElement methodElement, boolean requiresReflection, io.micronaut.inject.visitor.VisitorContext visitorContext)- Specified by:
visitMethodInjectionPointin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitExecutableMethod
public int visitExecutableMethod(io.micronaut.inject.ast.TypedElement declaringBean, io.micronaut.inject.ast.MethodElement methodElement, io.micronaut.inject.visitor.VisitorContext visitorContext)- Specified by:
visitExecutableMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitFieldInjectionPoint
public void visitFieldInjectionPoint(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.FieldElement fieldType, boolean requiresReflection)- Specified by:
visitFieldInjectionPointin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitAnnotationMemberPropertyInjectionPoint
public void visitAnnotationMemberPropertyInjectionPoint(io.micronaut.inject.ast.TypedElement annotationMemberBeanType, java.lang.String annotationMemberProperty, java.lang.String requiredValue, java.lang.String notEqualsValue)- Specified by:
visitAnnotationMemberPropertyInjectionPointin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitFieldValue
public void visitFieldValue(io.micronaut.inject.ast.TypedElement declaringType, io.micronaut.inject.ast.FieldElement fieldType, boolean requiresReflection, boolean isOptional)- Specified by:
visitFieldValuein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getPackageName
public java.lang.String getPackageName()
- Specified by:
getPackageNamein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getBeanSimpleName
public java.lang.String getBeanSimpleName()
- Specified by:
getBeanSimpleNamein interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getAnnotationMetadata
public io.micronaut.core.annotation.AnnotationMetadata getAnnotationMetadata()
- Specified by:
getAnnotationMetadatain interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitConfigBuilderField
public void visitConfigBuilderField(io.micronaut.inject.ast.ClassElement type, java.lang.String field, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.configuration.ConfigurationMetadataBuilder metadataBuilder, boolean isInterface)- Specified by:
visitConfigBuilderFieldin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitConfigBuilderMethod
public void visitConfigBuilderMethod(io.micronaut.inject.ast.ClassElement type, java.lang.String methodName, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.inject.configuration.ConfigurationMetadataBuilder metadataBuilder, boolean isInterface)- Specified by:
visitConfigBuilderMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitConfigBuilderMethod
public void visitConfigBuilderMethod(java.lang.String prefix, io.micronaut.inject.ast.ClassElement returnType, java.lang.String methodName, io.micronaut.inject.ast.ClassElement paramType, java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement> generics, java.lang.String propertyPath)- Specified by:
visitConfigBuilderMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitConfigBuilderDurationMethod
public void visitConfigBuilderDurationMethod(java.lang.String prefix, io.micronaut.inject.ast.ClassElement returnType, java.lang.String methodName, java.lang.String propertyPath)- Specified by:
visitConfigBuilderDurationMethodin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitConfigBuilderEnd
public void visitConfigBuilderEnd()
- Specified by:
visitConfigBuilderEndin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
setRequiresMethodProcessing
public void setRequiresMethodProcessing(boolean shouldPreProcess)
- Specified by:
setRequiresMethodProcessingin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
visitTypeArguments
public void visitTypeArguments(java.util.Map<java.lang.String,java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement>> typeArguments)
- Specified by:
visitTypeArgumentsin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
requiresMethodProcessing
public boolean requiresMethodProcessing()
- Specified by:
requiresMethodProcessingin interfaceio.micronaut.inject.writer.BeanDefinitionVisitor
-
getProxiedTypeName
public java.lang.String getProxiedTypeName()
- Specified by:
getProxiedTypeNamein interfaceio.micronaut.inject.writer.ProxyingBeanDefinitionVisitor
-
getProxiedBeanDefinitionName
public java.lang.String getProxiedBeanDefinitionName()
- Specified by:
getProxiedBeanDefinitionNamein interfaceio.micronaut.inject.writer.ProxyingBeanDefinitionVisitor
-
visitInterceptorBinding
public void visitInterceptorBinding(io.micronaut.core.annotation.AnnotationValue<?>... interceptorBinding)
visitInterceptorTypes.- Parameters:
interceptorBinding- the interceptor binding
-
-