@Internal
public interface BeanResolutionContext
extends io.micronaut.core.value.ValueResolver<java.lang.CharSequence>, java.lang.AutoCloseable
Modifier and Type | Interface and Description |
---|---|
static interface |
BeanResolutionContext.Path
Represents a path taken to resolve a bean definitions dependencies.
|
static interface |
BeanResolutionContext.Segment<T>
A segment in a path.
|
Modifier and Type | Method and Description |
---|---|
<T> void |
addDependentBean(BeanRegistration<T> beanRegistration)
Adds a dependent bean to the resolution context.
|
<T> void |
addInFlightBean(BeanIdentifier beanIdentifier,
BeanRegistration<T> beanRegistration)
Adds a bean that is created as part of the resolution.
|
default void |
close() |
BeanResolutionContext |
copy()
Copy current context to be used later.
|
void |
destroyInjectScopedBeans()
Call back to destroy any
InjectScope beans. |
<T> java.util.Optional<T> |
findBean(io.micronaut.core.type.Argument<T> beanType,
Qualifier<T> qualifier)
Find an optional bean of the given type and qualifier.
|
default java.util.List<BeanRegistration<?>> |
getAndResetDependentBeans() |
default BeanRegistration<?> |
getAndResetDependentFactoryBean() |
java.lang.Object |
getAttribute(java.lang.CharSequence key) |
<T> T |
getBean(io.micronaut.core.type.Argument<T> beanType,
Qualifier<T> qualifier)
Get a bean of the given type and qualifier.
|
<T> java.util.Collection<BeanRegistration<T>> |
getBeanRegistrations(io.micronaut.core.type.Argument<T> beanType,
Qualifier<T> qualifier)
Obtains the bean registrations for the given type and qualifier.
|
<T> java.util.Collection<T> |
getBeansOfType(io.micronaut.core.type.Argument<T> beanType,
Qualifier<T> qualifier)
Get all beans of the given type and qualifier.
|
BeanContext |
getContext() |
Qualifier<?> |
getCurrentQualifier() |
<T> BeanRegistration<T> |
getInFlightBean(BeanIdentifier beanIdentifier)
Obtains an inflight bean for the given identifier.
|
BeanResolutionContext.Path |
getPath() |
BeanDefinition |
getRootDefinition() |
<T> T |
inject(BeanDefinition<?> beanDefinition,
T instance)
Injects a bean.
|
default void |
markDependentAsFactory()
Marks first dependent as factory.
|
default java.util.List<BeanRegistration<?>> |
popDependentBeans() |
default void |
pushDependentBeans(java.util.List<BeanRegistration<?>> dependentBeans)
The push the current dependent beans that must be destroyed by an upstream bean.
|
java.lang.Object |
removeAttribute(java.lang.CharSequence key)
Remove the attribute for the given key.
|
void |
removeInFlightBean(BeanIdentifier beanIdentifier)
Removes a bean that is in the process of being created.
|
java.lang.Object |
setAttribute(java.lang.CharSequence key,
java.lang.Object value)
Store a value within the context.
|
void |
setCurrentQualifier(Qualifier<?> qualifier)
Sets the current qualifier.
|
<T> java.util.stream.Stream<T> |
streamOfType(io.micronaut.core.type.Argument<T> beanType,
Qualifier<T> qualifier)
Obtains a stream of beans of the given type and qualifier.
|
default void close()
close
in interface java.lang.AutoCloseable
@NonNull <T> T getBean(@NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable Qualifier<T> qualifier)
T
- The bean type parameterbeanType
- The bean typequalifier
- The qualifier@NonNull <T> java.util.Collection<T> getBeansOfType(@NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable Qualifier<T> qualifier)
T
- The bean type parameterbeanType
- The bean typequalifier
- The qualifier@NonNull <T> java.util.stream.Stream<T> streamOfType(@NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable Qualifier<T> qualifier)
T
- The bean concrete typebeanType
- The bean typequalifier
- The qualifier@NonNull <T> java.util.Optional<T> findBean(@NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable Qualifier<T> qualifier)
T
- The bean type parameterbeanType
- The bean typequalifier
- The qualifierOptional
@NonNull <T> T inject(@Nullable BeanDefinition<?> beanDefinition, @NonNull T instance)
T
- The instance typebeanDefinition
- The requesting bean definitioninstance
- The instance@NonNull <T> java.util.Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable Qualifier<T> qualifier)
T
- The generic typebeanType
- The bean typequalifier
- The qualifierBeanRegistration
void destroyInjectScopedBeans()
InjectScope
beans.InjectScope
BeanResolutionContext copy()
BeanContext getContext()
BeanDefinition getRootDefinition()
BeanResolutionContext.Path getPath()
java.lang.Object setAttribute(java.lang.CharSequence key, java.lang.Object value)
key
- The keyvalue
- The valuejava.lang.Object getAttribute(java.lang.CharSequence key)
key
- The keyjava.lang.Object removeAttribute(java.lang.CharSequence key)
key
- the key<T> void addInFlightBean(BeanIdentifier beanIdentifier, BeanRegistration<T> beanRegistration)
BeanContext.inject(Object)
T
- The instance typebeanIdentifier
- The bean identifierbeanRegistration
- The bean registrationvoid removeInFlightBean(BeanIdentifier beanIdentifier)
BeanContext.inject(Object)
beanIdentifier
- The bean identifier@Nullable <T> BeanRegistration<T> getInFlightBean(BeanIdentifier beanIdentifier)
PostConstruct
method that also triggers bean resolution of the same bean.T
- The bean typebeanIdentifier
- The bean identifier@Nullable Qualifier<?> getCurrentQualifier()
void setCurrentQualifier(@Nullable Qualifier<?> qualifier)
qualifier
- The qualifier<T> void addDependentBean(BeanRegistration<T> beanRegistration)
T
- The generic typebeanRegistration
- The bean registration@NonNull default java.util.List<BeanRegistration<?>> getAndResetDependentBeans()
@Nullable default java.util.List<BeanRegistration<?>> popDependentBeans()
default void pushDependentBeans(@Nullable java.util.List<BeanRegistration<?>> dependentBeans)
dependentBeans
- Dependent beans collection that can be used to add more dependentsdefault void markDependentAsFactory()
@Nullable default BeanRegistration<?> getAndResetDependentFactoryBean()