javax.enterprise.inject.spi

## Interface ProducerFactory<X>

-     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));
           }
       });

  Since:
    1.1
  Author:
    Pete Muir

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> Producer<T>` | `createProducer(Bean<T> bean)` Create a new producer for a bean.

- - ### Method Detail

    - #### createProducer

          <T> Producer<T> createProducer(Bean<T> bean)

      Create a new producer for a bean.
      Parameters:
        `bean` - the bean to create the producer for, or null if creating a non-contextual object
      Returns:
        the producer

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.