Interface BeanContainer
- All Known Subinterfaces:
BeanManager
BeanContainer
is a superclass of BeanManager
containing capabilities that are portable across
all CDI environments.
Provides operations for obtaining contextual references for beans, along with many other operations of use to CDI applications.
Any bean may obtain an instance of BeanContainer
by injecting it:
@Inject BeanContainer container;
-
Method Summary
Modifier and TypeMethodDescription<T> CreationalContext<T>
createCreationalContext
(Contextual<T> contextual) Obtain an instance of aCreationalContext
for the given contextual type, or for a non-contextual object.Obtains anInstance
object to access to beans instances.getBeans
(Type beanType, Annotation... qualifiers) Return the set of beans which have the given required type and qualifiers and are available for injection in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained, according to the rules of typesafe resolution.Return the set of beans which have the given EL name and are available for injection in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained, according to the rules of EL name resolution.getContext
(Class<? extends Annotation> scopeType) Obtains an active context object for the given scope .getEvent()
Returns an instance of Event with specified typejava.lang.Object
and specified qualifier@Default
It allows typesafe synchronous or asynchronous event firing without injection ofEvent
built-in bean requirement.getReference
(Bean<?> bean, Type beanType, CreationalContext<?> ctx) Obtains a contextual reference for a certain bean and a certain bean type of the bean.boolean
isInterceptorBinding
(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is an interceptor binding type .boolean
isNormalScope
(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is a normal scope type.boolean
isQualifier
(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is a qualifier type.boolean
isScope
(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is a scope type.boolean
isStereotype
(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is a stereotype.<X> Bean<? extends X>
Apply the ambiguous dependency resolution rules to a set of beans.List<Interceptor<?>>
resolveInterceptors
(InterceptionType type, Annotation... interceptorBindings) Return an ordered list of enabled interceptors for a set of interceptor bindings and a type of interception and which are enabled in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained.<T> Set<ObserverMethod<? super T>>
resolveObserverMethods
(T event, Annotation... qualifiers) Return an ordered set of observer methods for an event.
-
Method Details
-
getReference
Obtains a contextual reference for a certain bean and a certain bean type of the bean.
- Parameters:
bean
- theBean
object representing the beanbeanType
- a bean type that must be implemented by any client proxy that is returnedctx
- aCreationalContext
that may be used to destroy any object with scopeDependent
that is created- Returns:
- a contextual reference representing the bean
- Throws:
IllegalArgumentException
- if the given type is not a bean type of the given beanIllegalStateException
- if called during application initialization, before theAfterDeploymentValidation
event is fired.
-
createCreationalContext
Obtain an instance of aCreationalContext
for the given contextual type, or for a non-contextual object.- Type Parameters:
T
- type of the instance- Parameters:
contextual
- theContextual
, or a null value in the case of a non-contextual object- Returns:
- the new
CreationalContext
-
getBeans
Return the set of beans which have the given required type and qualifiers and are available for injection in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained, according to the rules of typesafe resolution. If no qualifiers are given, the default qualifier is assumed.Note that when called during invocation of an
AfterBeanDiscovery
event observer, this method will only return beans discovered by the container before theAfterBeanDiscovery
event is fired.- Parameters:
beanType
- the required bean typequalifiers
- the required qualifiers- Returns:
- the resulting set of beans
- Throws:
IllegalArgumentException
- if the given type represents a type variableIllegalArgumentException
- if two instances of the same non repeating qualifier type are givenIllegalArgumentException
- if an instance of an annotation that is not a qualifier type is givenIllegalStateException
- if called during application initialization, before theAfterBeanDiscovery
event is fired.
-
getBeans
Return the set of beans which have the given EL name and are available for injection in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained, according to the rules of EL name resolution.Note that when called during invocation of an
AfterBeanDiscovery
event observer, this method will only return beans discovered by the container before theAfterBeanDiscovery
event is fired.- Parameters:
name
- the EL name- Returns:
- the resulting set of beans
- Throws:
IllegalStateException
- if called during application initialization, before theAfterBeanDiscovery
event is fired.
-
resolve
Apply the ambiguous dependency resolution rules to a set of beans.Note that when called during invocation of an
AfterBeanDiscovery
event observer, this method will only return beans discovered by the container before theAfterBeanDiscovery
event is fired.- Type Parameters:
X
- a common type of the beans- Parameters:
beans
- a set of beans of the given type- Returns:
- the resolved bean, or null if null or an empty set is passed
- Throws:
AmbiguousResolutionException
- if the ambiguous dependency resolution rules failIllegalStateException
- if called during application initialization, before theAfterBeanDiscovery
event is fired.
-
resolveObserverMethods
Return an ordered set of observer methods for an event.Note that when called during invocation of an
AfterBeanDiscovery
event observer, this method will only return observers discovered by the container before theAfterBeanDiscovery
event is fired.- Type Parameters:
T
- the type of the event- Parameters:
event
- the event objectqualifiers
- the event qualifiers- Returns:
- the resulting set of observer methods
- Throws:
IllegalArgumentException
- if the runtime type of the event object contains a type variableIllegalArgumentException
- if two instances of the same non repeating qualifier type are givenIllegalArgumentException
- if an instance of an annotation that is not a qualifier type is givenIllegalStateException
- if called during application initialization, before theAfterBeanDiscovery
event is fired.
-
resolveInterceptors
Return an ordered list of enabled interceptors for a set of interceptor bindings and a type of interception and which are enabled in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager
/BeanContainer
was obtained.Note that when called during invocation of an
AfterBeanDiscovery
event observer, this method will only return interceptors discovered by the container before theAfterBeanDiscovery
event is fired.- Parameters:
type
- the type of the interceptioninterceptorBindings
- the interceptor bindings- Returns:
- the resulting set of interceptors
- Throws:
IllegalArgumentException
- if no interceptor binding type is givenIllegalArgumentException
- if two instances of the same interceptor binding type are givenIllegalArgumentException
- if an instance of an annotation that is not an interceptor binding type is givenIllegalStateException
- if called during application initialization, before theAfterBeanDiscovery
event is fired.
-
isScope
Test the given annotation type to determine if it is a scope type.- Parameters:
annotationType
- the annotation type- Returns:
- true if the annotation type is a scope type
-
isNormalScope
Test the given annotation type to determine if it is a normal scope type.- Parameters:
annotationType
- the annotation type- Returns:
true
if the annotation type is a normal scope type
-
isQualifier
Test the given annotation type to determine if it is a qualifier type.- Parameters:
annotationType
- the annotation type- Returns:
true
if the annotation type is a qualifier type
-
isStereotype
Test the given annotation type to determine if it is a stereotype.- Parameters:
annotationType
- the annotation type- Returns:
true
if the annotation type is a stereotype
-
isInterceptorBinding
Test the given annotation type to determine if it is an interceptor binding type .- Parameters:
annotationType
- the annotation to test- Returns:
true
if the annotation type is a interceptor binding type
-
getContext
Obtains an active context object for the given scope .- Parameters:
scopeType
- the scope- Returns:
- the context object
- Throws:
ContextNotActiveException
- if there is no active context object for the given scopeIllegalArgumentException
- if there is more than one active context object for the given scope
-
getEvent
Returns an instance of Event with specified typejava.lang.Object
and specified qualifier@Default
It allows typesafe synchronous or asynchronous event firing without injection ofEvent
built-in bean requirement.- Returns:
- a new
Event
object whose event type isObject
and qualifier@Default
- Since:
- 2.0
-
createInstance
Obtains anInstance
object to access to beans instances.The returned
Instance
object can only access instances of beans that are available for injection in the module or library containing the class into which theBeanManager
/BeanContainer
was injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanContainer
was obtained, according to the rules of typesafe resolution.Note that when called during invocation of an
AfterBeanDiscovery
event observer, theInstance
returned by this method will only give access to instances of beans discovered by the container before theAfterBeanDiscovery
event is fired.Instances of dependent scoped beans obtained with this
Instance
must be explicitly destroyed by callingInstance.destroy(Object)
If no qualifier is passed to
Instance.select(java.lang.annotation.Annotation...)
method, the@Default
qualifier is assumed.- Returns:
- an
Instance
object to request beans instances - Throws:
IllegalStateException
- if called during application initialization, before theAfterDeploymentValidation
event is fired.- Since:
- 2.0
-