Interface ProducerFactory<X>

Type Parameters:
X - type of the bean containing the producer

public interface ProducerFactory<X>

An ProducerFactory can create an Producer for a given bean.

The ProducerFactory obtained from BeanManager.getProducerFactory(AnnotatedMethod, Bean) or BeanManager.getProducerFactory(AnnotatedField, Bean) is capable of providing container created producers. This factory can be wrapped to add behavior to container created producers.

For example:

 BeanAttributes<MyBean> myBeanAttributes = beanManager.createBeanAttributes(myBeanAnnotatedFieldField);
 beanManager.createBean(myBeanAttributes, MyBean.class, new ProducerFactory() {
 
     public <T> Producer<T> createProducer(Bean<T> bean) {
         return new WrappingProducer<T>(beanManager.getProducerFactory(myBeanAnnotatedField).createProducer(bean));
     }
 });
 

CDI Lite implementations are not required to provide support for ProducerFactory.

Since:
1.1
  • Method Summary

    Modifier and Type
    Method
    Description
    <T> Producer<T>
    Create a new producer for a bean.
  • Method Details

    • createProducer

      <T> Producer<T> createProducer(Bean<T> bean)
      Create a new producer for a bean.
      Type Parameters:
      T - bean type
      Parameters:
      bean - the bean to create the producer for, or null if creating a non-contextual object
      Returns:
      the producer