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() {
install(ThrowingProviderBinder.forModule(this));
}
@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 TypeClassDescription(package private) static class
Represents the returned value from a call toCheckedProvider.get()
.private static class
RuntimeException class to wrap exceptions from the checked provider.class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Binder
private static final TypeLiteral<CheckedProviderMethod<?>>
private static final TypeLiteral<CheckedProvider<?>>
-
Constructor Summary
Constructors -
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.
-
Field Details
-
CHECKED_PROVIDER_TYPE
-
CHECKED_PROVIDER_METHOD_TYPE
-
binder
-
-
Constructor Details
-
ThrowingProviderBinder
-
-
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.