- 
- All Known Subinterfaces:
- BeanManager
 
 public interface BeanContainerBeanContaineris a superclass ofBeanManagercontaining 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 BeanContainerby injecting it:@Inject BeanContainer container; - Author:
- Matej Novotny
 
- 
- 
Method SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> CreationalContext<T>createCreationalContext(Contextual<T> contextual)Obtain an instance of aCreationalContextfor the given contextual type, or for a non-contextual object.Instance<java.lang.Object>createInstance()Obtains anInstanceobject to access to beans instances.java.util.Set<Bean<?>>getBeans(java.lang.reflect.Type beanType, java.lang.annotation.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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas obtained, according to the rules of typesafe resolution.java.util.Set<Bean<?>>getBeans(java.lang.String name)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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas obtained, according to the rules of EL name resolution.ContextgetContext(java.lang.Class<? extends java.lang.annotation.Annotation> scopeType)Obtains an active context object for the given scope .Event<java.lang.Object>getEvent()Returns an instance of Event with specified typejava.lang.Objectand specified qualifier@DefaultIt allows typesafe synchronous or asynchronous event firing without injection ofEventbuilt-in bean requirement.java.lang.ObjectgetReference(Bean<?> bean, java.lang.reflect.Type beanType, CreationalContext<?> ctx)Obtains a contextual reference for a certain bean and a certain bean type of the bean.booleanisInterceptorBinding(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)Test the given annotation type to determine if it is an interceptor binding type .booleanisNormalScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)Test the given annotation type to determine if it is a normal scope type.booleanisQualifier(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)Test the given annotation type to determine if it is a qualifier type.booleanisScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)Test the given annotation type to determine if it is a scope type.booleanisStereotype(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)Test the given annotation type to determine if it is a stereotype.<X> Bean<? extends X>resolve(java.util.Set<Bean<? extends X>> beans)Apply the ambiguous dependency resolution rules to a set of beans.java.util.List<Interceptor<?>>resolveInterceptors(InterceptionType type, java.lang.annotation.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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas obtained.<T> java.util.Set<ObserverMethod<? super T>>resolveObserverMethods(T event, java.lang.annotation.Annotation... qualifiers)Return an ordered set of observer methods for an event.
 
- 
- 
- 
Method Detail- 
getReferencejava.lang.Object getReference(Bean<?> bean, java.lang.reflect.Type beanType, CreationalContext<?> ctx) Obtains a contextual reference for a certain bean and a certain bean type of the bean. - Parameters:
- bean- the- Beanobject representing the bean
- beanType- a bean type that must be implemented by any client proxy that is returned
- ctx- a- CreationalContextthat may be used to destroy any object with scope- Dependentthat is created
- Returns:
- a contextual reference representing the bean
- Throws:
- java.lang.IllegalArgumentException- if the given type is not a bean type of the given bean
- java.lang.IllegalStateException- if called during application initialization, before the- AfterDeploymentValidationevent is fired.
 
 - 
createCreationalContext<T> CreationalContext<T> createCreationalContext(Contextual<T> contextual) Obtain an instance of aCreationalContextfor the given contextual type, or for a non-contextual object.- Type Parameters:
- T- type of the instance
- Parameters:
- contextual- the- Contextual, or a null value in the case of a non-contextual object
- Returns:
- the new CreationalContext
 
 - 
getBeansjava.util.Set<Bean<?>> getBeans(java.lang.reflect.Type beanType, java.lang.annotation.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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas 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 AfterBeanDiscoveryevent observer, this method will only return beans discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- beanType- the required bean type
- qualifiers- the required qualifiers
- Returns:
- the resulting set of beans
- Throws:
- java.lang.IllegalArgumentException- if the given type represents a type variable
- java.lang.IllegalArgumentException- if two instances of the same non repeating qualifier type are given
- java.lang.IllegalArgumentException- if an instance of an annotation that is not a qualifier type is given
- java.lang.IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
getBeansjava.util.Set<Bean<?>> getBeans(java.lang.String name) 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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas obtained, according to the rules of EL name resolution.Note that when called during invocation of an AfterBeanDiscoveryevent observer, this method will only return beans discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- name- the EL name
- Returns:
- the resulting set of beans
- Throws:
- java.lang.IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
resolve<X> Bean<? extends X> resolve(java.util.Set<Bean<? extends X>> beans) Apply the ambiguous dependency resolution rules to a set of beans.Note that when called during invocation of an AfterBeanDiscoveryevent observer, this method will only return beans discovered by the container before theAfterBeanDiscoveryevent 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 fail
- java.lang.IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
resolveObserverMethods<T> java.util.Set<ObserverMethod<? super T>> resolveObserverMethods(T event, java.lang.annotation.Annotation... qualifiers) Return an ordered set of observer methods for an event.Note that when called during invocation of an AfterBeanDiscoveryevent observer, this method will only return observers discovered by the container before theAfterBeanDiscoveryevent is fired.- Type Parameters:
- T- the type of the event
- Parameters:
- event- the event object
- qualifiers- the event qualifiers
- Returns:
- the resulting set of observer methods
- Throws:
- java.lang.IllegalArgumentException- if the runtime type of the event object contains a type variable
- java.lang.IllegalArgumentException- if two instances of the same non repeating qualifier type are given
- java.lang.IllegalArgumentException- if an instance of an annotation that is not a qualifier type is given
- java.lang.IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
resolveInterceptorsjava.util.List<Interceptor<?>> resolveInterceptors(InterceptionType type, java.lang.annotation.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/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanManager/BeanContainerwas obtained.Note that when called during invocation of an AfterBeanDiscoveryevent observer, this method will only return interceptors discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- type- the type of the interception
- interceptorBindings- the interceptor bindings
- Returns:
- the resulting set of interceptors
- Throws:
- java.lang.IllegalArgumentException- if no interceptor binding type is given
- java.lang.IllegalArgumentException- if two instances of the same interceptor binding type are given
- java.lang.IllegalArgumentException- if an instance of an annotation that is not an interceptor binding type is given
- java.lang.IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
isScopeboolean isScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) 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
 
 - 
isNormalScopeboolean isNormalScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) Test the given annotation type to determine if it is a normal scope type.- Parameters:
- annotationType- the annotation type
- Returns:
- trueif the annotation type is a normal scope type
 
 - 
isQualifierboolean isQualifier(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) Test the given annotation type to determine if it is a qualifier type.- Parameters:
- annotationType- the annotation type
- Returns:
- trueif the annotation type is a qualifier type
 
 - 
isStereotypeboolean isStereotype(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) Test the given annotation type to determine if it is a stereotype.- Parameters:
- annotationType- the annotation type
- Returns:
- trueif the annotation type is a stereotype
 
 - 
isInterceptorBindingboolean isInterceptorBinding(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) Test the given annotation type to determine if it is an interceptor binding type .- Parameters:
- annotationType- the annotation to test
- Returns:
- trueif the annotation type is a interceptor binding type
 
 - 
getContextContext getContext(java.lang.Class<? extends java.lang.annotation.Annotation> scopeType) 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 scope
- java.lang.IllegalArgumentException- if there is more than one active context object for the given scope
 
 - 
getEventEvent<java.lang.Object> getEvent() Returns an instance of Event with specified typejava.lang.Objectand specified qualifier@DefaultIt allows typesafe synchronous or asynchronous event firing without injection ofEventbuilt-in bean requirement.- Returns:
- a new Eventobject whose event type isObjectand qualifier@Default
- Since:
- 2.0
 
 - 
createInstanceInstance<java.lang.Object> createInstance() Obtains anInstanceobject to access to beans instances.The returned Instanceobject can only access instances of beans that are available for injection in the module or library containing the class into which theBeanManager/BeanContainerwas injected or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace theBeanContainerwas obtained, according to the rules of typesafe resolution.Note that when called during invocation of an AfterBeanDiscoveryevent observer, theInstancereturned by this method will only give access to instances of beans discovered by the container before theAfterBeanDiscoveryevent is fired.Instances of dependent scoped beans obtained with this Instancemust be explicitly destroyed by callingInstance.destroy(Object)If no qualifier is passed to Instance.select(java.lang.annotation.Annotation...)method, the@Defaultqualifier is assumed.- Returns:
- an Instanceobject to request beans instances
- Throws:
- java.lang.IllegalStateException- if called during application initialization, before the- AfterDeploymentValidationevent is fired.
- Since:
- 2.0
 
 
- 
 
-