Package io.quarkus.arc.processor
Class BeanGenerator
- java.lang.Object
-
- io.quarkus.arc.processor.BeanGenerator
-
- Direct Known Subclasses:
DecoratorGenerator,InterceptorGenerator
public class BeanGenerator extends Object
- Author:
- Martin Kouba
-
-
Field Summary
Fields Modifier and Type Field Description protected AnnotationLiteralProcessorannotationLiteralsprotected Predicate<org.jboss.jandex.DotName>applicationClassPredicateprotected Map<BeanInfo,String>beanToGeneratedBaseNameprotected Map<BeanInfo,String>beanToGeneratedNameprotected Set<String>existingClassesprotected static StringFIELD_NAME_BEAN_TYPESprotected static StringFIELD_NAME_DECLARING_PROVIDER_SUPPLIERprotected static StringFIELD_NAME_PROXYprotected static StringFIELD_NAME_QUALIFIERSprotected static StringFIELD_NAME_STEREOTYPESprotected booleangenerateSourcesprotected Predicate<org.jboss.jandex.DotName>injectionPointAnnotationsPredicateprotected io.quarkus.arc.processor.BeanProcessor.PrivateMembersCollectorprivateMembersprotected ReflectionRegistrationreflectionRegistrationprotected List<Function<BeanInfo,Consumer<io.quarkus.gizmo.BytecodeCreator>>>suppressConditionGenerators
-
Constructor Summary
Constructors Constructor Description BeanGenerator(AnnotationLiteralProcessor annotationLiterals, Predicate<org.jboss.jandex.DotName> applicationClassPredicate, io.quarkus.arc.processor.BeanProcessor.PrivateMembersCollector privateMembers, boolean generateSources, ReflectionRegistration reflectionRegistration, Set<String> existingClasses, Map<BeanInfo,String> beanToGeneratedName, Predicate<org.jboss.jandex.DotName> injectionPointAnnotationsPredicate, List<Function<BeanInfo,Consumer<io.quarkus.gizmo.BytecodeCreator>>> suppressConditionGenerators)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static io.quarkus.gizmo.ResultHandlecollectInjectionPointAnnotations(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, AnnotationLiteralProcessor annotationLiterals, Predicate<org.jboss.jandex.DotName> injectionPointAnnotationsPredicate)static io.quarkus.gizmo.ResultHandlecollectInjectionPointQualifiers(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, AnnotationLiteralProcessor annotationLiterals)static io.quarkus.gizmo.ResultHandlecollectQualifiers(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, AnnotationLiteralProcessor annotationLiterals, Set<org.jboss.jandex.AnnotationInstance> qualifiers)protected voidcreateConstructor(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderField, Map<InterceptorInfo,String> interceptorToProviderField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, AnnotationLiteralProcessor annotationLiterals, ReflectionRegistration reflectionRegistration)protected voidcreateProviderFields(io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderSupplier, Map<InterceptorInfo,String> interceptorToProviderSupplier, Map<DecoratorInfo,String> decoratorToProviderSupplier)protected StringgetBaseName(BeanInfo bean, String beanClassName)static io.quarkus.gizmo.ResultHandlegetJavaMemberHandle(io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, ReflectionRegistration reflectionRegistration)protected voidimplementCreate(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, String baseName, Map<InjectionPointInfo,String> injectionPointToProviderSupplierField, Map<InterceptorInfo,String> interceptorToProviderSupplierField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, String targetPackage, boolean isApplicationClass)protected voidimplementDestroy(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, Map<InjectionPointInfo,String> injectionPointToProviderField, boolean isApplicationClass, String baseName, String targetPackage)protected voidimplementEquals(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGet(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, String baseName)protected voidimplementGetBeanClass(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetDeclaringBean(io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetIdentifier(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetImplementationClass(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetKind(io.quarkus.gizmo.ClassCreator beanCreator, InjectableBean.Kind kind)protected voidimplementGetName(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetPriority(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetQualifiers(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor qualifiersField)protected voidimplementGetScope(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementGetStereotypes(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor stereotypesField)protected voidimplementGetTypes(io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor typesField)protected voidimplementHashCode(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementIsAlternative(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementIsDefaultBean(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementIsSuppressed(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementSupplierGet(io.quarkus.gizmo.ClassCreator beanCreator)protected voidimplementToString(io.quarkus.gizmo.ClassCreator beanCreator)protected io.quarkus.gizmo.MethodCreatorinitConstructor(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderField, Map<InterceptorInfo,String> interceptorToProviderField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, AnnotationLiteralProcessor annotationLiterals, ReflectionRegistration reflectionRegistration)protected voidinitMaps(BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProvider, Map<InterceptorInfo,String> interceptorToProvider, Map<DecoratorInfo,String> decoratorToProvider)protected booleanisPackagePrivate(int mod)protected booleanisReflectionFallbackNeeded(org.jboss.jandex.FieldInfo field, String targetPackage, BeanInfo bean)protected booleanisReflectionFallbackNeeded(org.jboss.jandex.MethodInfo method, String targetPackage)
-
-
-
Field Detail
-
FIELD_NAME_DECLARING_PROVIDER_SUPPLIER
protected static final String FIELD_NAME_DECLARING_PROVIDER_SUPPLIER
- See Also:
- Constant Field Values
-
FIELD_NAME_BEAN_TYPES
protected static final String FIELD_NAME_BEAN_TYPES
- See Also:
- Constant Field Values
-
FIELD_NAME_QUALIFIERS
protected static final String FIELD_NAME_QUALIFIERS
- See Also:
- Constant Field Values
-
FIELD_NAME_STEREOTYPES
protected static final String FIELD_NAME_STEREOTYPES
- See Also:
- Constant Field Values
-
FIELD_NAME_PROXY
protected static final String FIELD_NAME_PROXY
- See Also:
- Constant Field Values
-
annotationLiterals
protected final AnnotationLiteralProcessor annotationLiterals
-
applicationClassPredicate
protected final Predicate<org.jboss.jandex.DotName> applicationClassPredicate
-
privateMembers
protected final io.quarkus.arc.processor.BeanProcessor.PrivateMembersCollector privateMembers
-
injectionPointAnnotationsPredicate
protected final Predicate<org.jboss.jandex.DotName> injectionPointAnnotationsPredicate
-
suppressConditionGenerators
protected final List<Function<BeanInfo,Consumer<io.quarkus.gizmo.BytecodeCreator>>> suppressConditionGenerators
-
generateSources
protected final boolean generateSources
-
reflectionRegistration
protected final ReflectionRegistration reflectionRegistration
-
-
Constructor Detail
-
BeanGenerator
public BeanGenerator(AnnotationLiteralProcessor annotationLiterals, Predicate<org.jboss.jandex.DotName> applicationClassPredicate, io.quarkus.arc.processor.BeanProcessor.PrivateMembersCollector privateMembers, boolean generateSources, ReflectionRegistration reflectionRegistration, Set<String> existingClasses, Map<BeanInfo,String> beanToGeneratedName, Predicate<org.jboss.jandex.DotName> injectionPointAnnotationsPredicate, List<Function<BeanInfo,Consumer<io.quarkus.gizmo.BytecodeCreator>>> suppressConditionGenerators)
-
-
Method Detail
-
initMaps
protected void initMaps(BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProvider, Map<InterceptorInfo,String> interceptorToProvider, Map<DecoratorInfo,String> decoratorToProvider)
-
createProviderFields
protected void createProviderFields(io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderSupplier, Map<InterceptorInfo,String> interceptorToProviderSupplier, Map<DecoratorInfo,String> decoratorToProviderSupplier)
-
createConstructor
protected void createConstructor(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderField, Map<InterceptorInfo,String> interceptorToProviderField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, AnnotationLiteralProcessor annotationLiterals, ReflectionRegistration reflectionRegistration)
-
initConstructor
protected io.quarkus.gizmo.MethodCreator initConstructor(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, Map<InjectionPointInfo,String> injectionPointToProviderField, Map<InterceptorInfo,String> interceptorToProviderField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, AnnotationLiteralProcessor annotationLiterals, ReflectionRegistration reflectionRegistration)
-
implementDestroy
protected void implementDestroy(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, Map<InjectionPointInfo,String> injectionPointToProviderField, boolean isApplicationClass, String baseName, String targetPackage)
-
implementCreate
protected void implementCreate(io.quarkus.gizmo.ClassOutput classOutput, io.quarkus.gizmo.ClassCreator beanCreator, BeanInfo bean, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, String baseName, Map<InjectionPointInfo,String> injectionPointToProviderSupplierField, Map<InterceptorInfo,String> interceptorToProviderSupplierField, Map<DecoratorInfo,String> decoratorToProviderSupplierField, String targetPackage, boolean isApplicationClass)
-
implementGet
protected void implementGet(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.arc.processor.BeanGenerator.ProviderType providerType, String baseName)
-
implementGetTypes
protected void implementGetTypes(io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor typesField)- Parameters:
beanCreator-- See Also:
InjectableBean.getTypes()
-
implementGetScope
protected void implementGetScope(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
- Parameters:
bean-beanCreator-- See Also:
InjectableBean.getScope()
-
implementGetIdentifier
protected void implementGetIdentifier(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
- Parameters:
bean-beanCreator-- See Also:
InjectableBean.getIdentifier()
-
implementEquals
protected void implementEquals(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementHashCode
protected void implementHashCode(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementToString
protected void implementToString(io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetQualifiers
protected void implementGetQualifiers(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor qualifiersField)
- Parameters:
bean-beanCreator-qualifiersField-- See Also:
InjectableBean.getQualifiers()
-
implementGetDeclaringBean
protected void implementGetDeclaringBean(io.quarkus.gizmo.ClassCreator beanCreator)
-
implementIsAlternative
protected void implementIsAlternative(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetPriority
protected void implementGetPriority(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementIsDefaultBean
protected void implementIsDefaultBean(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetStereotypes
protected void implementGetStereotypes(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator, io.quarkus.gizmo.FieldDescriptor stereotypesField)
-
implementGetBeanClass
protected void implementGetBeanClass(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetImplementationClass
protected void implementGetImplementationClass(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetName
protected void implementGetName(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
implementGetKind
protected void implementGetKind(io.quarkus.gizmo.ClassCreator beanCreator, InjectableBean.Kind kind)
-
implementSupplierGet
protected void implementSupplierGet(io.quarkus.gizmo.ClassCreator beanCreator)
-
implementIsSuppressed
protected void implementIsSuppressed(BeanInfo bean, io.quarkus.gizmo.ClassCreator beanCreator)
-
getJavaMemberHandle
public static io.quarkus.gizmo.ResultHandle getJavaMemberHandle(io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, ReflectionRegistration reflectionRegistration)
-
collectInjectionPointAnnotations
public static io.quarkus.gizmo.ResultHandle collectInjectionPointAnnotations(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, AnnotationLiteralProcessor annotationLiterals, Predicate<org.jboss.jandex.DotName> injectionPointAnnotationsPredicate)
-
collectInjectionPointQualifiers
public static io.quarkus.gizmo.ResultHandle collectInjectionPointQualifiers(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, InjectionPointInfo injectionPoint, AnnotationLiteralProcessor annotationLiterals)
-
collectQualifiers
public static io.quarkus.gizmo.ResultHandle collectQualifiers(BeanDeployment beanDeployment, io.quarkus.gizmo.MethodCreator bytecode, AnnotationLiteralProcessor annotationLiterals, Set<org.jboss.jandex.AnnotationInstance> qualifiers)
-
isReflectionFallbackNeeded
protected boolean isReflectionFallbackNeeded(org.jboss.jandex.MethodInfo method, String targetPackage)
-
isReflectionFallbackNeeded
protected boolean isReflectionFallbackNeeded(org.jboss.jandex.FieldInfo field, String targetPackage, BeanInfo bean)
-
isPackagePrivate
protected boolean isPackagePrivate(int mod)
-
-