@Typed public final class Beans extends Object
Collection of utility methods for the CDI API that are mainly shortcuts for obtaining stuff from the
BeanManager
.
Some examples:
// Get the CDI managed bean reference (proxy) of the given bean class. SomeBean someBean = Beans.getReference(SomeBean.class); // Get the CDI managed bean instance (actual) of the given bean class. SomeBean someBean = Beans.getInstance(SomeBean.class); // Get all currently active CDI managed bean instances in the session scope. Map<Object, String> activeSessionScopedBeans = Beans.getActiveInstances(SessionScope.class); // Destroy any currently active CDI managed bean instance of given bean class. Beans.destroy(SomeBean.class);
The "native" CDI way would otherwise look like this:
// Get the CDI managed bean reference (proxy) of the given bean class. Set<Bean<?>> beans = beanManager.getBeans(SomeBean.class); Bean<SomeBean> bean = (Bean<SomeBean>) beanManager.resolve(beans); CreationalContext<SomeBean> context = beanManager.createCreationalContext(bean); SomeBean someBean = (SomeBean) beanManager.getReference(bean, SomeBean.class, context);
If you need a dependency-free way of obtaining the CDI managed bean reference (e.g. when you want to write code which
should also run on Tomcat), use BeanManager
enum instead.
BeansLocal
Modifier and Type | Method and Description |
---|---|
static <T> void |
destroy(Bean<T> bean)
Destroy the currently active instance of the given CDI managed bean representation.
|
static <T> void |
destroy(Class<T> beanClass)
Destroy the currently active instance of the given CDI managed bean class.
|
static <S extends NormalScope> |
getActiveInstances(Class<S> scope)
Returns all active CDI managed bean instances in the given CDI managed bean scope.
|
static <A extends Annotation> |
getAnnotation(Annotated annotated,
Class<A> annotationType)
Get program element annotation of a certain annotation type.
|
static InjectionPoint |
getCurrentInjectionPoint(CreationalContext<?> creationalContext)
Gets the current injection point when called from a context where injection is taking place (e.g.
|
static <T> T |
getInstance(Bean<T> bean,
boolean create)
Returns the CDI managed bean instance (actual) of the given bean representation and creates one if one doesn't
exist and
create argument is true , otherwise don't create one and return
null if there's no current instance. |
static <T> T |
getInstance(Class<T> beanClass)
Returns the CDI managed bean instance (actual) of the given bean class and creates one if one doesn't exist.
|
static <T> T |
getInstance(Class<T> beanClass,
boolean create)
Returns the CDI managed bean instance (actual) of the given bean class and creates one if one doesn't exist and
create argument is true , otherwise don't create one and return null if
there's no current instance. |
static BeanManager |
getManager()
Returns the CDI bean manager.
|
static <T> T |
getReference(Bean<T> bean)
Returns the CDI managed bean reference (proxy) of the given bean representation.
|
static <T> T |
getReference(Class<T> beanClass)
Returns the CDI managed bean reference (proxy) of the given bean class.
|
static <T> Bean<T> |
resolve(Class<T> beanClass)
Returns the CDI managed bean representation of the given bean class.
|
public static BeanManager getManager()
BeanManager.get()
public static <T> Bean<T> resolve(Class<T> beanClass)
T
- The generic CDI managed bean type.beanClass
- The CDI managed bean class.null
if there is none.BeanManager.getBeans(String)
,
BeanManager.resolve(java.util.Set)
public static <T> T getReference(Class<T> beanClass)
T
- The expected return type.beanClass
- The CDI managed bean class.null
if there is none.resolve(Class)
,
getReference(Bean)
public static <T> T getReference(Bean<T> bean)
T
- The expected return type.bean
- The CDI managed bean representation.null
if there is none.BeanManager.createCreationalContext(javax.enterprise.context.spi.Contextual)
,
BeanManager.getReference(Bean, java.lang.reflect.Type, javax.enterprise.context.spi.CreationalContext)
public static <T> T getInstance(Class<T> beanClass)
T
- The expected return type.beanClass
- The CDI managed bean class.null
if there is none.getInstance(Class, boolean)
public static <T> T getInstance(Class<T> beanClass, boolean create)
create
argument is true
, otherwise don't create one and return null
if
there's no current instance.T
- The expected return type.beanClass
- The CDI managed bean class.create
- Whether to create create CDI managed bean instance if one doesn't exist.null
if there is none
and/or the create
argument is false
.resolve(Class)
,
getInstance(Bean, boolean)
public static <T> T getInstance(Bean<T> bean, boolean create)
create
argument is true
, otherwise don't create one and return
null
if there's no current instance.T
- The expected return type.bean
- The CDI managed bean representation.create
- Whether to create create CDI managed bean instance if one doesn't exist.null
if there is none and/or
the create
argument is false
.BeanManager.getContext(Class)
,
BeanManager.createCreationalContext(javax.enterprise.context.spi.Contextual)
,
Context.get(javax.enterprise.context.spi.Contextual, javax.enterprise.context.spi.CreationalContext)
public static <S extends NormalScope> Map<Object,String> getActiveInstances(Class<S> scope)
S
- The generic CDI managed bean scope type.scope
- The CDI managed bean scope, e.g. RequestScoped.class
.BeanManager.getBeans(String)
,
BeanManager.getContext(Class)
,
Context.get(javax.enterprise.context.spi.Contextual)
public static <T> void destroy(Class<T> beanClass)
T
- The generic CDI managed bean type.beanClass
- The CDI managed bean class.resolve(Class)
,
destroy(Bean)
public static <T> void destroy(Bean<T> bean)
T
- The generic CDI managed bean type.bean
- The CDI managed bean representation.IllegalArgumentException
- When the given CDI managed bean type is actually not put in an alterable
context.BeanManager.getContext(Class)
,
AlterableContext.destroy(javax.enterprise.context.spi.Contextual)
public static <A extends Annotation> A getAnnotation(Annotated annotated, Class<A> annotationType)
Annotated.getAnnotation(Class)
is that this method will recursively search inside all Stereotype
annotations.A
- The generic annotation type.annotated
- A Java program element that can be annotated.annotationType
- The class of the annotation type.null
.public static InjectionPoint getCurrentInjectionPoint(CreationalContext<?> creationalContext)
This is mostly intended to be used from within a dynamic producer Bean
. For a "regular" producer (using Produces
)
an InjectionPoint
can either be injected into the bean that contains the producer method, or directly provided as argument
of said method.
creationalContext
- a CreationalContext
used to manage objects with a
Dependent
scopeCopyright © 2012–2014 OmniFaces. All rights reserved.