@Target(value=CONSTRUCTOR)
@Retention(value=CLASS)
public @interface AssistedInject
Injectable constructors are annotated with @AssistedInject and accept two more
dependencies as arguments. @AssistedInject can apply to at most one constructor per
class.
Arguments can be a mix of assisted or provided. Assisted arguments are those
annotated with @Assisted and will be supplied by the caller. Provided arguments
are all others and will be supplied by your dependency injector. At least one assisted and one
provided argument must be present.
Both assisted and provided arguments can have qualifier annotations. Since assisted and provider arguments are resolved separately, the same qualifier can be used for both on a single constructor.
Each type with an @AssistedInject-annotated constructor must also contain a nested
interface annotated with @AssistedInject.Factory. The interface must have a
single method that returns the enclosing type and arguments which match the assisted arguments
of the enclosing @AssistedInject-annotated constructor.