Class ThrowingProviderBinder
java.lang.Object
com.google.inject.throwingproviders.ThrowingProviderBinder
Builds a binding for a CheckedProvider
.
You can use a fluent API and custom providers:
ThrowingProviderBinder.create(binder())
.bind(RemoteProvider.class, Customer.class)
.to(RemoteCustomerProvider.class)
.in(RequestScope.class);
or, you can use throwing provider methods:
class MyModule extends AbstractModule {
configure() {
ThrowingProviderBinder.install(this, binder());
}
@CheckedProvides(RemoteProvider.class)
@RequestScope
Customer provideCustomer(FlakyCustomerCreator creator) throws RemoteException {
return creator.getCustomerOrThrow();
}
}
You also can declare that a CheckedProvider construct
a particular class whose constructor throws an exception:
ThrowingProviderBinder.create(binder())
.bind(RemoteProvider.class, Customer.class)
.providing(CustomerImpl.class)
.in(RequestScope.class);
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
-
Method Summary
Modifier and TypeMethodDescription<P extends CheckedProvider,
T>
ThrowingProviderBinder.SecondaryBinder<P,T> bind
(Class<P> interfaceType, TypeLiteral<T> typeLiteral) <P extends CheckedProvider,
T>
ThrowingProviderBinder.SecondaryBinder<P,T> <P extends CheckedProvider>
ThrowingProviderBinder.SecondaryBinder<P,?> Deprecated.static ThrowingProviderBinder
static Module
Returns a module that installs @CheckedProvides
methods.
-
Method Details
-
create
-
forModule
Returns a module that installs @CheckedProvides
methods.- Since:
- 3.0
-
bind
@Deprecated public <P extends CheckedProvider> ThrowingProviderBinder.SecondaryBinder<P,?> bind(Class<P> interfaceType, Type clazz) Deprecated.Usebind(Class, Class)
orbind(Class, TypeLiteral)
instead. -
bind
public <P extends CheckedProvider,T> ThrowingProviderBinder.SecondaryBinder<P,T> bind(Class<P> interfaceType, Class<T> clazz) - Since:
- 4.0
-
bind
public <P extends CheckedProvider,T> ThrowingProviderBinder.SecondaryBinder<P,T> bind(Class<P> interfaceType, TypeLiteral<T> typeLiteral) - Since:
- 4.0
-
bind(Class, Class)
orbind(Class, TypeLiteral)
instead.