javax.enterprise.inject.spi
public interface BeanManager
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.
Any bean may obtain an instance of BeanManager by injecting it:
@Inject BeanManager manager;
Java EE components may obtain an instance of BeanManager from
JNDI by looking up the name java:comp/BeanManager
.
Any operation of BeanManager may be called at any time during the execution of the application.
Modifier and Type | Method and Description |
---|---|
<T> AnnotatedType<T> |
createAnnotatedType(java.lang.Class<T> type)
Obtain an
AnnotatedType that may be used to read the annotations
of the given class or interface. |
<T> CreationalContext<T> |
createCreationalContext(Contextual<T> contextual)
Obtain an instance of a
CreationalContext
for the given contextual type,
or for a non-contextual object. |
<T> InjectionTarget<T> |
createInjectionTarget(AnnotatedType<T> type)
Obtains an
InjectionTarget for the given AnnotatedType . |
void |
fireEvent(java.lang.Object event,
java.lang.annotation.Annotation... qualifiers)
Fire an event and notify observers.
|
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 the
BeanManager was injected or the Java EE component from whose JNDI
environment namespace the BeanManager was obtained, according to
the rules of EL name resolution.
|
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 the BeanManager was injected or the Java EE component from
whose JNDI environment namespace the BeanManager was obtained,
according to the rules of typesafe resolution.
|
Context |
getContext(java.lang.Class<? extends java.lang.annotation.Annotation> scopeType)
Obtains an active context object for the given scope.
|
javax.el.ELResolver |
getELResolver()
Returns a
ELResolver that resolves beans by EL name. |
java.lang.Object |
getInjectableReference(InjectionPoint ij,
CreationalContext<?> ctx)
Obtains an injectable reference for a certain injection point.
|
java.util.Set<java.lang.annotation.Annotation> |
getInterceptorBindingDefinition(java.lang.Class<? extends java.lang.annotation.Annotation> bindingType)
Obtains the set of meta-annotations for a certain
interceptor binding type.
|
Bean<?> |
getPassivationCapableBean(java.lang.String id)
Returns the
PassivationCapable bean with
the given identifier. |
java.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.
|
java.util.Set<java.lang.annotation.Annotation> |
getStereotypeDefinition(java.lang.Class<? extends java.lang.annotation.Annotation> stereotype)
Obtains meta-annotations for a certain
stereotype.
|
boolean |
isInterceptorBinding(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Test the given annotation type to determine if it is an
interceptor binding type.
|
boolean |
isNormalScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Test the given annotation type to determine if it is a
normal scope type.
|
boolean |
isPassivatingScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Test the given annotation type to determine if it is a passivating
scope type.
|
boolean |
isQualifier(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Test the given annotation type to determine if it is a
qualifier type.
|
boolean |
isScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Test the given annotation type to determine if it is a
scope type.
|
boolean |
isStereotype(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<Decorator<?>> |
resolveDecorators(java.util.Set<java.lang.reflect.Type> types,
java.lang.annotation.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 the BeanManager was
injected or the Java EE component from whose JNDI environment namespace
the BeanManager was obtained.
|
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 the BeanManager
was injected or the Java EE component from whose JNDI environment namespace
the BeanManager was obtained.
|
<T> java.util.Set<ObserverMethod<? super T>> |
resolveObserverMethods(T event,
java.lang.annotation.Annotation... qualifiers)
Return the set of observers for an event.
|
void |
validate(InjectionPoint injectionPoint)
Validate a certain injection point.
|
javax.el.ExpressionFactory |
wrapExpressionFactory(javax.el.ExpressionFactory expressionFactory)
Returns a wrapper
ExpressionFactory that delegates
MethodExpression and ValueExpression
creation to the given ExpressionFactory . |
java.lang.Object getReference(Bean<?> bean, java.lang.reflect.Type beanType, CreationalContext<?> ctx)
bean
- the Bean
object representing the beanbeanType
- a bean type that must be implemented by any client proxy
that is returnedctx
- a CreationalContext
that
may be used to destroy any object with scope
{javax.enterprise.context.Dependent} that is createdjava.lang.IllegalArgumentException
- if the given type is not a bean type of
the given beanjava.lang.Object getInjectableReference(InjectionPoint ij, CreationalContext<?> ctx)
ij
- the target injection pointctx
- a CreationalContext
that
may be used to destroy any object with scope
{javax.enterprise.context.Dependent} that is createdUnsatisfiedResolutionException
- if typesafe resolution results in
an unsatisfied dependencyAmbiguousResolutionException
- typesafe resolution results in an
unresolvable ambiguous dependency<T> CreationalContext<T> createCreationalContext(Contextual<T> contextual)
CreationalContext
for the given contextual type,
or for a non-contextual object.contextual
- the Contextual
, or
a null value in the case of a non-contextual objectCreationalContext
java.util.Set<Bean<?>> getBeans(java.lang.reflect.Type beanType, java.lang.annotation.Annotation... qualifiers)
beanType
- the required bean typequalifiers
- the required qualifiersjava.lang.IllegalArgumentException
- if the given type represents a type
variablejava.lang.IllegalArgumentException
- if two instances of the same qualifier type
are givenjava.lang.IllegalArgumentException
- if an instance of an annotation that is
not a qualifier type is givenjava.util.Set<Bean<?>> getBeans(java.lang.String name)
name
- the EL nameBean<?> getPassivationCapableBean(java.lang.String id)
PassivationCapable
bean with
the given identifier.id
- the identifierBean
that implements
PassivationCapable
and has the given identifier, or a null value if there
is no such bean<X> Bean<? extends X> resolve(java.util.Set<Bean<? extends X>> beans)
X
- a common type of the beansbeans
- a set of beans of the given typeAmbiguousResolutionException
- if the ambiguous dependency
resolution rules failvoid validate(InjectionPoint injectionPoint)
injectionPoint
- the injection point to
validateInjectionException
- if there is a deployment problem (for
example, an unsatisfied or unresolvable ambiguous dependency)
associated with the injection pointvoid fireEvent(java.lang.Object event, java.lang.annotation.Annotation... qualifiers)
event
- the event objectqualifiers
- the event qualifiersjava.lang.IllegalArgumentException
- if the runtime type of the event object
contains a type variablejava.lang.IllegalArgumentException
- if two instances of the same qualifier type
are givenjava.lang.IllegalArgumentException
- if an instance of an annotation that is not
a qualifier type is given<T> java.util.Set<ObserverMethod<? super T>> resolveObserverMethods(T event, java.lang.annotation.Annotation... qualifiers)
T
- the type of the eventevent
- the event objectqualifiers
- the event qualifiersjava.lang.IllegalArgumentException
- if the runtime type of the event object
contains a type variablejava.lang.IllegalArgumentException
- if two instances of the same qualifier type
are givenjava.lang.IllegalArgumentException
- if an instance of an annotation that is not
a qualifier type is givenjava.util.List<Decorator<?>> resolveDecorators(java.util.Set<java.lang.reflect.Type> types, java.lang.annotation.Annotation... qualifiers)
types
- the set of bean types of the decorated beanqualifiers
- the qualifiers declared by the decorated beanjava.lang.IllegalArgumentException
- if the set of bean types is emptyjava.lang.IllegalArgumentException
- if an annotation which is not a binding
type is passedjava.lang.IllegalArgumentException
- if two instances of the same binding type
are passedjava.util.List<Interceptor<?>> resolveInterceptors(InterceptionType type, java.lang.annotation.Annotation... interceptorBindings)
type
- the type of the interceptioninterceptorBindings
- the interceptor bindingsjava.lang.IllegalArgumentException
- if no interceptor binding type is givenjava.lang.IllegalArgumentException
- if two instances of the same interceptor
binding type are givenjava.lang.IllegalArgumentException
- if an instance of an annotation that is not
an interceptor binding type is givenboolean isScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation typeboolean isNormalScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation typeboolean isPassivatingScope(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation typeboolean isQualifier(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation typeboolean isInterceptorBinding(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation to testboolean isStereotype(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
- the annotation typejava.util.Set<java.lang.annotation.Annotation> getInterceptorBindingDefinition(java.lang.Class<? extends java.lang.annotation.Annotation> bindingType)
bindingType
- the
interceptor binding typejava.util.Set<java.lang.annotation.Annotation> getStereotypeDefinition(java.lang.Class<? extends java.lang.annotation.Annotation> stereotype)
stereotype
- the stereotypeContext getContext(java.lang.Class<? extends java.lang.annotation.Annotation> scopeType)
scopeType
- the scopeContextNotActiveException
- if there is no active context object for the
given scopejava.lang.IllegalArgumentException
- if there is more than one active context object
for the given scopejavax.el.ELResolver getELResolver()
ELResolver
that resolves beans by EL name.javax.el.ExpressionFactory wrapExpressionFactory(javax.el.ExpressionFactory expressionFactory)
ExpressionFactory
that delegates
MethodExpression
and ValueExpression
creation to the given ExpressionFactory
. When a Unified
EL expression is evaluated using a MethodExpression
or
ValueExpression
returned by the wrapper
ExpressionFactory
, the container handles destruction of
objects with scope Dependent
.expressionFactory
- the ExpressionFactory
to wrapExpressionFactory
<T> AnnotatedType<T> createAnnotatedType(java.lang.Class<T> type)
AnnotatedType
that may be used to read the annotations
of the given class or interface.T
- the class or interfacetype
- the Class
objectAnnotatedType
<T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> type)
InjectionTarget
for the given AnnotatedType
.
The container ignores the annotations and types declared by the elements
of the actual Java class and uses the metadata provided via the
Annotated
interface instead.T
- the typetype
- the AnnotatedType
java.lang.IllegalArgumentException
- if there is a definition error associated
with any injection point of the type