Interface BeanManager
- 
- All Superinterfaces:
- BeanContainer
 
 public interface BeanManager extends BeanContainer Allows a portable extension to interact directly with the container. Provides operations for obtaining contextual references for beans, along with many other operations of use to portable extensions. In CDI Lite environment, applications may obtain a BeanManager, but invoking methods that are not inherited fromBeanContainerresults in non-portable behavior.Any bean may obtain an instance of BeanManagerby injecting it:@Inject BeanManager manager; Java EE components may obtain an instance of BeanManagerfrom JNDI by looking up the namejava:comp/BeanManager.Most operations of BeanManager may be called at any time during the execution of the application. However, the following operations must not be called before the AfterBeanDiscoveryevent is fired:- BeanContainer.getBeans(String),
- BeanContainer.getBeans(java.lang.reflect.Type, java.lang.annotation.Annotation...),
- getPassivationCapableBean(String),
- BeanContainer.resolve(java.util.Set),
- resolveDecorators(java.util.Set, java.lang.annotation.Annotation...),
- BeanContainer.resolveInterceptors(InterceptionType, java.lang.annotation.Annotation...),
- resolveObserverMethods(Object, java.lang.annotation.Annotation...),
- validate(InjectionPoint),
- BeanContainer.createInstance()
 and the following operations must not be called before the AfterDeploymentValidationevent is fired:- BeanContainer.getReference(Bean, java.lang.reflect.Type, CreationalContext),
- getInjectableReference(InjectionPoint, CreationalContext),
 or the container will throw an Exception. - Author:
- Gavin King, Pete Muir, Clint Popetz, David Allen, Antoine Sabot-Durand
 
- 
- 
Method SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanareInterceptorBindingsEquivalent(Annotation interceptorBinding1, Annotation interceptorBinding2)Determine if two interceptor bindings are considered equivalent for the purposes of typesafe resolution, taking into account any members annotated withNonbinding.booleanareQualifiersEquivalent(Annotation qualifier1, Annotation qualifier2)Determine if two qualifiers are considered equivalent for the purposes of typesafe resolution, taking into account any members annotated withNonbinding.<T> AnnotatedType<T>createAnnotatedType(Class<T> type)Obtain anAnnotatedTypethat may be used to read the annotations of the given class or interface.<T> Bean<T>createBean(BeanAttributes<T> attributes, Class<T> beanClass, InjectionTargetFactory<T> injectionTargetFactory)<T,X>
 Bean<T>createBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> producerFactory)BeanAttributes<?>createBeanAttributes(AnnotatedMember<?> type)Obtains aBeanAttributesfor the givenAnnotatedType.<T> BeanAttributes<T>createBeanAttributes(AnnotatedType<T> type)Obtains aBeanAttributesfor the givenAnnotatedType.InjectionPointcreateInjectionPoint(AnnotatedField<?> field)Obtains a container provided implementation ofInjectionPointfor the givenAnnotatedField.InjectionPointcreateInjectionPoint(AnnotatedParameter<?> parameter)Obtains a container provided implementation ofInjectionPointfor the givenAnnotatedParameter.<T> InterceptionFactory<T>createInterceptionFactory(CreationalContext<T> ctx, Class<T> clazz)Create anInterceptionFactoryfor the givenCreationalContextand type.ELResolvergetELResolver()Returns aELResolverthat resolves beans by EL name.<T extends Extension>
 TgetExtension(Class<T> extensionClass)Obtains the container's instance of an Extension class declared inMETA-INF/services.ObjectgetInjectableReference(InjectionPoint ij, CreationalContext<?> ctx)Obtains an injectable reference for a certain injection point.<T> InjectionTargetFactory<T>getInjectionTargetFactory(AnnotatedType<T> annotatedType)An implementation ofInjectionTargetFactorythat provides container createdInjectionTargetinstances.Set<Annotation>getInterceptorBindingDefinition(Class<? extends Annotation> bindingType)Obtains the set of meta-annotations for a certain interceptor binding type .intgetInterceptorBindingHashCode(Annotation interceptorBinding)Determine the hash code of an interceptor binding, using the JDK algorithm for determining an annotation hash code, ignoring any members annotated withNonbinding.Bean<?>getPassivationCapableBean(String id)Returns thePassivationCapablebean with the given identifier.<X> ProducerFactory<X>getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean)An implementation ofProducerFactorythat provides container createdProducerinstances for the given field.<X> ProducerFactory<X>getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean)An implementation ofProducerFactorythat provides container createdProducerinstances for the given method.intgetQualifierHashCode(Annotation qualifier)Determine the hash code of a qualifier, using the JDK algorithm for determining an annotation hash code, ignoring any members annotated withNonbinding.Set<Annotation>getStereotypeDefinition(Class<? extends Annotation> stereotype)Obtains meta-annotations for a certain stereotype.booleanisPassivatingScope(Class<? extends Annotation> annotationType)Test the given annotation type to determine if it is a passivating scope type.List<Decorator<?>>resolveDecorators(Set<Type> types, Annotation... qualifiers)Return an ordered list of decorators for a set of bean types and a set of qualifiers and which are enabled in the module or library containing the class into which theBeanManagerwas injected or the Java EE component from whose JNDI environment namespace theBeanManagerwas obtained.<T> Set<ObserverMethod<? super T>>resolveObserverMethods(T event, Annotation... qualifiers)Return an ordered set of observer methods for an event.voidvalidate(InjectionPoint injectionPoint)Validate a certain injection point.ExpressionFactorywrapExpressionFactory(ExpressionFactory expressionFactory)Returns a wrapperExpressionFactorythat delegatesMethodExpressionandValueExpressioncreation to the givenExpressionFactory.- 
Methods inherited from interface jakarta.enterprise.inject.spi.BeanContainercreateCreationalContext, createInstance, getBeans, getBeans, getContext, getEvent, getReference, isInterceptorBinding, isNormalScope, isQualifier, isScope, isStereotype, resolve, resolveInterceptors
 
- 
 
- 
- 
- 
Method Detail- 
getPassivationCapableBeanBean<?> getPassivationCapableBean(String id) Returns thePassivationCapablebean with the given identifier. Note that when called during invocation of anAfterBeanDiscoveryevent observer, this method will only return beans discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- id- the identifier
- Returns:
- a Beanthat implementsPassivationCapableand has the given identifier, or a null value if there is no such bean
- Throws:
- IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
validatevoid validate(InjectionPoint injectionPoint) Validate a certain injection point. Note that when called during invocation of anAfterBeanDiscoveryevent observer, this method will only validate injection points discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- injectionPoint- the injection point to validate
- Throws:
- InjectionException- if there is a deployment problem (for example, an unsatisfied or unresolvable ambiguous dependency) associated with the injection point
- IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
resolveObserverMethods<T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, Annotation... qualifiers) Return an ordered set of observer methods for an event. Note that when called during invocation of anAfterBeanDiscoveryevent observer, this method will only return observers discovered by the container before theAfterBeanDiscoveryevent is fired.- Specified by:
- resolveObserverMethodsin interface- BeanContainer
- 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:
- IllegalArgumentException- if the runtime type of the event object contains a type variable
- IllegalArgumentException- if two instances of the same non repeating qualifier type are given
- IllegalArgumentException- if an instance of an annotation that is not a qualifier type is given
- IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
resolveDecoratorsList<Decorator<?>> resolveDecorators(Set<Type> types, Annotation... qualifiers) Return an ordered list of decorators for a set of bean types and a set of qualifiers and which are enabled in the module or library containing the class into which theBeanManagerwas injected or the Java EE component from whose JNDI environment namespace theBeanManagerwas obtained. Note that when called during invocation of anAfterBeanDiscoveryevent observer, this method will only return decorators discovered by the container before theAfterBeanDiscoveryevent is fired.- Parameters:
- types- the set of bean types of the decorated bean
- qualifiers- the qualifiers declared by the decorated bean
- Returns:
- the resulting set of decorators
- Throws:
- IllegalArgumentException- if the set of bean types is empty
- IllegalArgumentException- if an annotation which is not a binding type is passed
- IllegalArgumentException- if two instances of the same binding type are passed
- IllegalStateException- if called during application initialization, before the- AfterBeanDiscoveryevent is fired.
 
 - 
isPassivatingScopeboolean isPassivatingScope(Class<? extends Annotation> annotationType) Test the given annotation type to determine if it is a passivating scope type.- Parameters:
- annotationType- the annotation type
- Returns:
- trueif the annotation type is a passivating scope type
 
 - 
getInterceptorBindingDefinitionSet<Annotation> getInterceptorBindingDefinition(Class<? extends Annotation> bindingType) Obtains the set of meta-annotations for a certain interceptor binding type .- Parameters:
- bindingType- the interceptor binding type
- Returns:
- the set of meta-annotations
 
 - 
getStereotypeDefinitionSet<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype) Obtains meta-annotations for a certain stereotype.- Parameters:
- stereotype- the stereotype
- Returns:
- the set of meta-annotations
 
 - 
areQualifiersEquivalentboolean areQualifiersEquivalent(Annotation qualifier1, Annotation qualifier2) Determine if two qualifiers are considered equivalent for the purposes of typesafe resolution, taking into account any members annotated withNonbinding.- Parameters:
- qualifier1- a qualifier to check
- qualifier2- a qualifier to check
- Returns:
- true if the two qualifiers are equivalent, otherwise false
- Since:
- 1.1
 
 - 
areInterceptorBindingsEquivalentboolean areInterceptorBindingsEquivalent(Annotation interceptorBinding1, Annotation interceptorBinding2) Determine if two interceptor bindings are considered equivalent for the purposes of typesafe resolution, taking into account any members annotated withNonbinding.- Parameters:
- interceptorBinding1- an interceptor binding to check
- interceptorBinding2- an interceptor binding to check
- Returns:
- true if the two interceptor bindings are equivalent, otherwise false
- Since:
- 1.1
 
 - 
getQualifierHashCodeint getQualifierHashCode(Annotation qualifier) Determine the hash code of a qualifier, using the JDK algorithm for determining an annotation hash code, ignoring any members annotated withNonbinding.- Parameters:
- qualifier- the qualifier to consider
- Returns:
- the hashCode for the qualifier
- Since:
- 1.1
 
 - 
getInterceptorBindingHashCodeint getInterceptorBindingHashCode(Annotation interceptorBinding) Determine the hash code of an interceptor binding, using the JDK algorithm for determining an annotation hash code, ignoring any members annotated withNonbinding.- Parameters:
- interceptorBinding- the interceptor binding to consider
- Returns:
- the hashCode for the interceptor binding
- Since:
- 1.1
 
 - 
getELResolverELResolver getELResolver() Returns aELResolverthat resolves beans by EL name.- Returns:
- the ELResolver
 
 - 
wrapExpressionFactoryExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory) Returns a wrapperExpressionFactorythat delegatesMethodExpressionandValueExpressioncreation to the givenExpressionFactory. When a Unified EL expression is evaluated using aMethodExpressionorValueExpressionreturned by the wrapperExpressionFactory, the container handles destruction of objects with scopeDependent.- Parameters:
- expressionFactory- the- ExpressionFactoryto wrap
- Returns:
- the wrapped ExpressionFactory
 
 - 
createAnnotatedType<T> AnnotatedType<T> createAnnotatedType(Class<T> type) Obtain anAnnotatedTypethat may be used to read the annotations of the given class or interface.- Type Parameters:
- T- the class or interface
- Parameters:
- type- the- Classobject
- Returns:
- the AnnotatedType
 
 - 
getInjectionTargetFactory<T> InjectionTargetFactory<T> getInjectionTargetFactory(AnnotatedType<T> annotatedType) An implementation of InjectionTargetFactorythat provides container createdInjectionTargetinstances.This factory can be wrapped to add behavior to container created injection targets. - Type Parameters:
- T- the type
- Parameters:
- annotatedType- the annotated type to create the injection target factory for
- Returns:
- an InjectionTargetFactory
- Since:
- 1.1
 
 - 
getProducerFactory<X> ProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean) An implementation of ProducerFactorythat provides container createdProducerinstances for the given field.This factory can be wrapped to add behavior to container created producers. - Type Parameters:
- X- the declaring type
- Parameters:
- field- the field to create the producer factory for
- declaringBean- the bean declaring the producer. May be null if the producer is static or the declaring object is non-contextual
- Returns:
- the producer factory for the field
- Since:
- 1.1
 
 - 
getProducerFactory<X> ProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean) An implementation of ProducerFactorythat provides container createdProducerinstances for the given method.This factory can be wrapped to add behavior to container created producers. - Type Parameters:
- X- bean type
- Parameters:
- method- the method to create the producer factory for
- declaringBean- the bean declaring the producer. May be null if the producer is static or the declaring object is non-contextual
- Returns:
- the producer factory for the method
- Since:
- 1.1
 
 - 
createBeanAttributes<T> BeanAttributes<T> createBeanAttributes(AnnotatedType<T> type) Obtains aBeanAttributesfor the givenAnnotatedType. The container ignores the annotations and types declared by the elements of the actual Java class and uses the metadata provided via theAnnotatedinterface instead.- Type Parameters:
- T- the type
- Parameters:
- type- the- AnnotatedType
- Returns:
- a container provided implementation of InjectionTarget
- Since:
- 1.1
 
 - 
createBeanAttributesBeanAttributes<?> createBeanAttributes(AnnotatedMember<?> type) Obtains aBeanAttributesfor the givenAnnotatedType. The container ignores the annotations and types declared by the elements of the actual Java class and uses the metadata provided via theAnnotatedinterface instead.- Parameters:
- type- the- AnnotatedType
- Returns:
- a container provided implementation of InjectionTarget
- Since:
- 1.1
 
 - 
createBean<T> Bean<T> createBean(BeanAttributes<T> attributes, Class<T> beanClass, InjectionTargetFactory<T> injectionTargetFactory) Obtains a Beanfor the givenBeanAttributes, bean class andInjectionTarget.The InjectionTargetcreates and destroys instances of the bean, performs dependency injection and lifecycle callbacks, and determines the return value ofBean.getInjectionPoints(). TheInjectionTargetis obtained from theInjectionTargetFactory.getInjectionTargetFactory(AnnotatedType)allows use of a container createdInjectionTarget.- Type Parameters:
- T- the type
- Parameters:
- attributes- a- BeanAttributeswhich determines the bean types, qualifiers, scope, name and stereotypes of the returned- Bean, and the return value of- BeanAttributes.isAlternative()
- beanClass- a class, which determines the return value of- Bean.getBeanClass()
- injectionTargetFactory- an- InjectionTargetFactory, used to obtain an- InjectionTarget
- Returns:
- a container provided implementation of Bean
- Since:
- 1.1
 
 - 
createBean<T,X> Bean<T> createBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> producerFactory) Obtains a Beanfor the givenBeanAttributes, bean class andProducer.The Producercreates and destroys instances of the decorator, and determines the return value ofBean.getInjectionPoints(). TheProduceris obtained from theProducerFactory.getProducerFactory(AnnotatedMethod, Bean)orgetProducerFactory(AnnotatedField, Bean)allows use of a container createdProducer.- Type Parameters:
- T- the type
- X- the type of the declaring bean
- Parameters:
- attributes- a- BeanAttributeswhich determines the bean types, qualifiers, scope, name and stereotypes of the returned- Bean, and the return value of- BeanAttributes.isAlternative()
- beanClass- a class, which determines the return value of- Bean.getClass()
- producerFactory- a- ProducerFactory, used to obtain a- Producer
- Returns:
- a container provided implementation of Bean
- Since:
- 1.1
 
 - 
createInjectionPointInjectionPoint createInjectionPoint(AnnotatedField<?> field) Obtains a container provided implementation ofInjectionPointfor the givenAnnotatedField.- Parameters:
- field- the- AnnotatedFielddefining the injection point
- Returns:
- the container provided InjectionPoint
- Throws:
- IllegalArgumentException- if there is a definition error associated with the injection point
- Since:
- 1.1
 
 - 
createInjectionPointInjectionPoint createInjectionPoint(AnnotatedParameter<?> parameter) Obtains a container provided implementation ofInjectionPointfor the givenAnnotatedParameter.- Parameters:
- parameter- the- AnnotatedParameterdefining the injection point
- Returns:
- the container provided InjectionPoint
- Throws:
- IllegalArgumentException- if there is a definition error associated with the injection point
- Since:
- 1.1
 
 - 
getExtension<T extends Extension> T getExtension(Class<T> extensionClass) Obtains the container's instance of an Extension class declared inMETA-INF/services.- Type Parameters:
- T- the type of the extension
- Parameters:
- extensionClass- the type of the extension class
- Returns:
- the extension instance
- Throws:
- IllegalArgumentException- if the container has no instance of the given class
- Since:
- 1.1
 
 - 
createInterceptionFactory<T> InterceptionFactory<T> createInterceptionFactory(CreationalContext<T> ctx, Class<T> clazz) Create anInterceptionFactoryfor the givenCreationalContextand type.- Type Parameters:
- T- type of the instance this factory will work on
- Parameters:
- ctx-- CreationalContextfor the- InterceptionFactoryto create
- clazz- class of the instance this factory will work on
- Returns:
- a new InterceptionFactoryto add services on on instances of T
- Since:
- 2.0
 
 - 
getInjectableReferenceObject getInjectableReference(InjectionPoint ij, CreationalContext<?> ctx) Obtains an injectable reference for a certain injection point. - Parameters:
- ij- the target injection point
- ctx- a- CreationalContextthat may be used to destroy any object with scope- Dependentthat is created
- Returns:
- the injectable reference
- Throws:
- UnsatisfiedResolutionException- if typesafe resolution results in an unsatisfied dependency
- AmbiguousResolutionException- typesafe resolution results in an unresolvable ambiguous dependency
- IllegalStateException- if called during application initialization, before the- AfterDeploymentValidationevent is fired.
 
 
- 
 
-