com.google.web.bindery.autobean.shared

## Interface AutoBeanFactory

All Known Subinterfaces:
  InProcessRequestFactory.Factory, MessageFactory

    public interface AutoBeanFactory

A tag interface for the AutoBean generator. Instances of AutoBeans are created by declaring factory methods on a subtype of this interface.

Simple interfaces, consisting of only getters and setters, can be constructed with a no-arg method. Non-simple interfaces must provide a delegate object to implement a non-simple interface or use a `AutoBeanFactory.Category`.

     interface MyFactory extends AutoBeanFactory {
       // A factory method for a simple bean
       AutoBean<BeanInterface> beanInterface();
       // A factory method for a wrapper bean
       AutoBean<ArbitraryInterface> wrapper(ArbitraryInterface delegate);
     }

See Also:
  AutoBean wiki page

### Nested Class Summary

Nested Classes
`static interface` `AutoBeanFactory.Category` Allows non-property methods on simple bean implementations when applied.
`static interface` `AutoBeanFactory.NoWrap` The types specified by this annotation will not be wrapped by an AutoBean when returned from an AutoBean-controlled method.

### Method Summary

All Methods Instance Methods Abstract Methods
`<T> AutoBean<T>` `create(java.lang.Class<T> clazz)` Allows dynamic creation of AutoBean instances based on declared parameterizations.
`<T,U extends T> AutoBean<T>` `create(java.lang.Class<T> clazz, U delegate)` Allows dynamic creation of wrapped AutoBean instances based on declared parameterizations.

### Method Detail

#### create

    <T> AutoBean<T> create(java.lang.Class<T> clazz)

Allows dynamic creation of AutoBean instances based on declared parameterizations.

Type Parameters:
  `T` - the parameterization of the created `AutoBean`
Parameters:
  `clazz` - the Class of type T of the new instance
Returns:
  an `AutoBean` of type T or `null` if the interface type is unknown to the factory

#### create

    <T,U extends T> AutoBean<T> create(java.lang.Class<T> clazz,
                                       U delegate)

Allows dynamic creation of wrapped AutoBean instances based on declared parameterizations.

Type Parameters:
  `T` - the parameterization of the created `AutoBean`
  `U` - the delegate's type, a subtype of T
Parameters:
  `clazz` - the Class of type T of the new instance
  `delegate` - a delegate that extends type T
Returns:
  an `AutoBean` of type T or `null` if the interface type is unknown to the factory