public class ProviderTypeProvider<T> extends StdProvider<T> implements Provider<T>
For example
public interface Foo {
// ...
}
public class FooProvider implements Provider<Foo> {
@Inject private Baz baz;
@Override
public Foo get() {
// create Foo using some baz property
}
}
Bindings like
bind(Foo.class).toProvider(FooProvider.class) and
bind(Foo.class).toProvider(new FooProvider()) work,
The difference is that the binding to the provider class
creates the provider instance using Injector.getInstance(java.lang.Class<T>),
so the constructor can be injected
injected| Constructor and Description |
|---|
ProviderTypeProvider(TypeReference<? extends Provider<? extends T>> providerClass) |
| Modifier and Type | Method and Description |
|---|---|
T |
get() |
Provider<? extends T> |
getProvider() |
void |
inject(ProvisionStack stack,
InjectorImpl injector)
Used by standard providers and some other
providers to delegate the injection to the
wrapped provider (when it's a wrapper provider)
or injecting some provider properties without
checking everything
|
java.lang.String |
toString() |
get, isInjected, onBind, setInjected, withScopepublic ProviderTypeProvider(TypeReference<? extends Provider<? extends T>> providerClass)
public void inject(ProvisionStack stack, InjectorImpl injector)
StdProviderUsed by standard providers and some other providers to delegate the injection to the wrapped provider (when it's a wrapper provider) or injecting some provider properties without checking everything
inject in class StdProvider<T>stack - The thread injection stack (passed as argument
instead of getting it from the thread-local held
by the injector)injector - The injector used to inject this providerpublic T get()
public java.lang.String toString()
toString in class java.lang.Object