|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface ProviderWithExtensionVisitor<T>
A Provider that is part of an extension which supports a custom BindingTargetVisitor.
When an extension binds a provider instance, the provider can implement this
interface to allow users using the
Binding.acceptTargetVisitor(BindingTargetVisitor) method to visit a
custom visitor designed for that extension. A typical implementation within
the extension would look like
<V, B> V acceptExtensionVisitor(BindingTargetVisitor<B, V> visitor, ProviderInstanceBinding<? extends B> binding) {
if(visitor instanceof MyCustomExtensionVisitor) {
return ((MyCustomExtensionVisitor<B, V>)visitor).visitCustomExtension(customProperties, binding);
} else {
return visitor.visit(binding);
}
}
'MyCustomExtensionVisitor' in the example above would be an interface the
extension provides that users can implement in order to be notified of custom
extension information. These visitor interfaces must extend from
BindingTargetVisitor.
| Method Summary | ||
|---|---|---|
|
acceptExtensionVisitor(BindingTargetVisitor<B,V> visitor,
ProviderInstanceBinding<? extends B> binding)
Instructs the extension determine if the visitor is an instance of a custom extension visitor, and if so, visit it using that method. |
|
| Methods inherited from interface com.google.inject.Provider |
|---|
get |
| Method Detail |
|---|
<B,V> V acceptExtensionVisitor(BindingTargetVisitor<B,V> visitor,
ProviderInstanceBinding<? extends B> binding)
Due to issues with generics, the type parameters of this method do not relate to the type of the provider. In practice, the 'B' type will always be a supertype of 'T'.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||