| java.lang.Object | |
| ↳ | com.google.inject.assistedinject.FactoryProvider<F> | 
      
  This class is deprecated.
 use FactoryModuleBuilder instead.
  
Obsolete. Prefer FactoryModuleBuilder for its more concise API and
 additional capability.
 
Provides a factory that combines the caller's arguments with injector-supplied values to construct objects.
public interface PaymentFactory {
   Payment create(Date startDate, Money amount);
 }
 You can name your factory methods whatever you like, such as create, createPayment
 or newPayment.
 constructedType is a concrete class with an @Inject-annotated
 constructor. In addition to injector-supplied parameters, the constructor should have
 parameters that match each of the factory method's parameters. Each factory-supplied parameter
 requires an @Assisted annotation. This serves to document that the parameter
 is not bound by your application's modules.
 public class RealPayment implements Payment {
   @Inject
   public RealPayment(
      CreditService creditService,
      AuthService authService,
      @Assisted Date startDate,
      @Assisted Money amount) {
     ...
   }
 }
 Any parameter that permits a null value should also be annotated @Nullable.
 module, bind the factory interface to the returned
 factory:
 bind(PaymentFactory.class).toProvider(
     FactoryProvider.newFactory(PaymentFactory.class, RealPayment.class));
 As a side-effect of this binding, Guice will inject the factory to initialize it for use. The
 factory cannot be used until the injector has been initialized.
 public class PaymentAction {
   @Inject private PaymentFactory paymentFactory;
   public void doPayment(Money amount) {
     Payment payment = paymentFactory.create(new Date(), amount);
     payment.apply();
   }
 }
 Assisted annotation to disambiguate the
 parameters. The names must be applied to the factory method's parameters:
 public interface PaymentFactory {
   Payment create(
       @Assisted("startDate") Date startDate,
       @Assisted("dueDate") Date dueDate,
       Money amount);
 } 
 ...and to the concrete type's constructor parameters:
 public class RealPayment implements Payment {
   @Inject
   public RealPayment(
      CreditService creditService,
      AuthService authService,
      @Assisted("startDate") Date startDate,
      @Assisted("dueDate") Date dueDate,
      @Assisted Money amount) {
     ...
   }
 }
 AssistedInject. This triggers a limited backwards-compatability mode.
 Instead of matching factory method arguments to constructor parameters using their names, the parameters are matched by their order. The first factory method argument is used for the first @Assisted constructor parameter, etc.. Annotation names have no effect.
Returned values are not created by Guice. These types are not eligible for method interception. They do receive post-construction member injection.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Provides an instance of  
  
  T. | |||||||||||
Returns the known dependencies for this type. 
  
   | |||||||||||
| 
  [Expand]
   Inherited Methods  | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
   
From class
  java.lang.Object
 | |||||||||||
   
From interface
  com.google.inject.Provider
 | |||||||||||
   
From interface
  com.google.inject.spi.HasDependencies
 | |||||||||||
   
From interface
  javax.inject.Provider
 | |||||||||||
Returns the known dependencies for this type. If this has dependencies whose values are not
 known statically, a dependency for the Injector will be
 included in the returned set.