Package io.micronaut.inject.provider
Class AbstractProviderDefinition<T>
java.lang.Object
io.micronaut.inject.provider.AbstractProviderDefinition<T>
- Type Parameters:
T
- The generic type
- All Implemented Interfaces:
AnnotationMetadata
,AnnotationMetadataDelegate
,AnnotationMetadataProvider
,AnnotationSource
,BeanInfo<T>
,Named
,ArgumentCoercible<T>
,BeanContextConditional
,BeanDefinition<T>
,BeanDefinitionReference<T>
,BeanType<T>
,InstantiatableBeanDefinition<T>
,QualifiedBeanType<T>
- Direct Known Subclasses:
BeanProviderDefinition
,JakartaProviderBeanDefinition
,JavaxProviderBeanDefinition
public abstract class AbstractProviderDefinition<T>
extends Object
implements InstantiatableBeanDefinition<T>, BeanDefinitionReference<T>
Abstract bean definition for other providers to extend from.
- Since:
- 3.0.0
- Author:
- graemerocher
-
Field Summary
Fields inherited from interface io.micronaut.core.annotation.AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBER
Fields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract T
buildProvider
(@NonNull BeanResolutionContext resolutionContext, @NonNull BeanContext context, @NonNull Argument<Object> argument, @Nullable Qualifier<Object> qualifier, boolean singleton) Builds a provider implementation.boolean
Supplies the metadata.Resolve the declared qualifier for this bean.If the bean itself declares any type arguments this method will return the classes that represent those types.getTypeArguments
(Class<?> type) Return the type arguments for the given interface or super type for this bean.int
hashCode()
instantiate
(BeanResolutionContext resolutionContext, BeanContext context) Builds a bean instance.final boolean
protected boolean
isAllowEmptyProviders
(BeanContext context) Return whether missing providers are allowed for this implementation.boolean
isCandidateBean
(Argument<?> beanType) Return whether this bean type is a candidate for dependency injection for the passed type.boolean
boolean
Checks whether the bean type is a container type.boolean
isEnabled
(@NonNull BeanContext context, @Nullable BeanResolutionContext resolutionContext) Return whether this component is enabled for the given context.boolean
final boolean
load()
Loads the bean definition.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadata
enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasEvaluatedExpressions, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresent
Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadataDelegate
booleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, copyAnnotationMetadata, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, enumValues, enumValues, enumValues, enumValues, findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, findRepeatableAnnotation, findRepeatableAnnotation, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByName, getAnnotationValuesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByName, getDeclaredAnnotationValuesByType, getDeclaredMetadata, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getStereotypeAnnotationNames, getTargetAnnotationMetadata, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasPropertyExpressions, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isRepeatableAnnotation, isRepeatableAnnotation, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, stringValues, stringValues, synthesize, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByType
Methods inherited from interface io.micronaut.inject.BeanContextConditional
isEnabled
Methods inherited from interface io.micronaut.inject.BeanDefinition
asArgument, findMethod, findPossibleMethods, getBeanType, getConstructor, getContainerElement, getDeclaringType, getExecutableMethods, getGenericBeanType, getInjectedFields, getInjectedMethods, getName, getPostConstructMethods, getPreDestroyMethods, getRequiredComponents, getRequiredMethod, getScope, getScopeName, getTypeArguments, getTypeParameters, getTypeParameters, hasAnnotatedMethod, isIterable, isProxy, resolveDynamicQualifier
Methods inherited from interface io.micronaut.inject.BeanDefinitionReference
isContextScope, isProxiedBean, isProxyTarget, load
Methods inherited from interface io.micronaut.inject.BeanType
getBeanName, getExposedTypes, isPrimary, requiresMethodProcessing
Methods inherited from interface io.micronaut.inject.InstantiatableBeanDefinition
instantiate
-
Constructor Details
-
AbstractProviderDefinition
public AbstractProviderDefinition()
-
-
Method Details
-
isContainerType
public boolean isContainerType()Description copied from interface:BeanType
Checks whether the bean type is a container type.- Specified by:
isContainerType
in interfaceBeanType<T>
- Returns:
- Whether the type is a container type like
Iterable
.
-
isCandidateBean
Description copied from interface:BeanType
Return whether this bean type is a candidate for dependency injection for the passed type.- Specified by:
isCandidateBean
in interfaceBeanDefinition<T>
- Specified by:
isCandidateBean
in interfaceBeanType<T>
- Parameters:
beanType
- The bean type- Returns:
- True if it is
-
isEnabled
public boolean isEnabled(@NonNull @NonNull BeanContext context, @Nullable @Nullable BeanResolutionContext resolutionContext) Description copied from interface:BeanContextConditional
Return whether this component is enabled for the given context.- Specified by:
isEnabled
in interfaceBeanContextConditional
- Parameters:
context
- The contextresolutionContext
- The bean resolution context- Returns:
- True if it is
-
getBeanDefinitionName
- Specified by:
getBeanDefinitionName
in interfaceBeanDefinitionReference<T>
- Returns:
- The class name of the backing
BeanDefinition
-
load
Description copied from interface:BeanDefinitionReference
Loads the bean definition.- Specified by:
load
in interfaceBeanDefinitionReference<T>
- Returns:
- The loaded component definition or null if it shouldn't be loaded
-
isPresent
public boolean isPresent()- Specified by:
isPresent
in interfaceBeanDefinitionReference<T>
- Returns:
- Is the underlying bean type present on the classpath
-
buildProvider
@NonNull protected abstract T buildProvider(@NonNull @NonNull BeanResolutionContext resolutionContext, @NonNull @NonNull BeanContext context, @NonNull @NonNull Argument<Object> argument, @Nullable @Nullable Qualifier<Object> qualifier, boolean singleton) Builds a provider implementation.- Parameters:
resolutionContext
- The resolution contextcontext
- The contextargument
- The argumentqualifier
- The qualifiersingleton
- Whether the bean is a singleton- Returns:
- The provider
-
instantiate
public T instantiate(BeanResolutionContext resolutionContext, BeanContext context) throws BeanInstantiationException Description copied from interface:InstantiatableBeanDefinition
Builds a bean instance.- Specified by:
instantiate
in interfaceInstantiatableBeanDefinition<T>
- Parameters:
resolutionContext
- The bean resolution contextcontext
- The context- Returns:
- The instance
- Throws:
BeanInstantiationException
- if the instance could not be instantiated
-
isAllowEmptyProviders
Return whether missing providers are allowed for this implementation. Iffalse
aNoSuchBeanException
is thrown.- Parameters:
context
- The context- Returns:
- Returns
true
if missing providers are allowed
-
isAbstract
public final boolean isAbstract()- Specified by:
isAbstract
in interfaceBeanDefinition<T>
- Returns:
- Whether the bean definition is abstract
-
isSingleton
public final boolean isSingleton()- Specified by:
isSingleton
in interfaceBeanDefinition<T>
- Specified by:
isSingleton
in interfaceBeanDefinitionReference<T>
- Returns:
- Whether the scope is singleton
-
isConfigurationProperties
public boolean isConfigurationProperties()- Specified by:
isConfigurationProperties
in interfaceBeanDefinition<T>
- Specified by:
isConfigurationProperties
in interfaceBeanDefinitionReference<T>
- Returns:
- Is the type configuration properties.
-
getTypeArguments
Description copied from interface:BeanDefinition
Return the type arguments for the given interface or super type for this bean.- Specified by:
getTypeArguments
in interfaceBeanDefinition<T>
- Parameters:
type
- The super class or interface type- Returns:
- The type arguments
-
getTypeArguments
Description copied from interface:BeanDefinition
If the bean itself declares any type arguments this method will return the classes that represent those types.- Specified by:
getTypeArguments
in interfaceBeanDefinition<T>
- Returns:
- The type arguments
-
getAnnotationMetadata
Description copied from interface:AnnotationMetadataProvider
Supplies the metadata. Defaults toAnnotationMetadata.EMPTY_METADATA
.- Specified by:
getAnnotationMetadata
in interfaceAnnotationMetadataProvider
- Returns:
- The
AnnotationMetadata
-
getDeclaredQualifier
Description copied from interface:BeanDefinition
Resolve the declared qualifier for this bean.- Specified by:
getDeclaredQualifier
in interfaceBeanDefinition<T>
- Specified by:
getDeclaredQualifier
in interfaceQualifiedBeanType<T>
- Returns:
- The qualifier or null if this isn't one
-
equals
-
hashCode
public int hashCode()
-