public class AdaptableTypeListener extends java.lang.Object implements TypeListener
TypeListener to support adapter injection. It will
register an AdapterInjector, which will perform the adapter
injection, for each IAdaptable that is eligible (see
InjectAdapters.
In order to function properly, an AdaptableTypeListener has to be
bound in a Guice Module as follows:
AdaptableTypeListener adaptableTypeListener = new AdaptableTypeListener(); requestInjection(adaptableTypeListener); bindListener(Matchers.any(), adaptableTypeListener);The call to
requestInjection() is important to ensure that
setInjector(Injector) will get injected.
Without it, the AdaptableTypeListener will not function properly.
Clients should not register an AdaptableTypeListener themselves but
rather install AdapterInjectionSupport in one of the Modules
that are used by the Injector.
AdapterInjectionSupport| Constructor and Description |
|---|
AdaptableTypeListener(AdapterInjectionSupport.LoggingMode loggingMode)
Constructs a new
AdaptableTypeListener and specifies the
AdapterInjectionSupport.LoggingMode to use. |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
eligibleForAdapterInjection(java.lang.reflect.Method method)
Checks that the given method complies to the signature of
IAdaptable.setAdapter(TypeToken, Object, String). |
<I> void |
hear(TypeLiteral<I> type,
TypeEncounter<I> encounter) |
void |
setInjector(Injector injector)
In order to work, the
AdaptableTypeListener needs to obtain a
reference to an Injector, which is forwarded to the
AdapterInjector, which it registers for any IAdaptable
encounters, to obtain the AdapterMap bindings to be injected. |
public AdaptableTypeListener(AdapterInjectionSupport.LoggingMode loggingMode)
AdaptableTypeListener and specifies the
AdapterInjectionSupport.LoggingMode to use. If in AdapterInjectionSupport.LoggingMode.DEVELOPMENT mode,
binding-related information, warning, and error messages will be printed.
If in AdapterInjectionSupport.LoggingMode.PRODUCTION mode, only error messages will be
printed, and information and warning messages will be suppressed.loggingMode - The AdapterInjectionSupport.LoggingMode to use.protected boolean eligibleForAdapterInjection(java.lang.reflect.Method method)
IAdaptable.setAdapter(TypeToken, Object, String).method - The Method to test.true if the method has a compatible signature,
false otherwise.public <I> void hear(TypeLiteral<I> type, TypeEncounter<I> encounter)
hear in interface TypeListener@Inject public void setInjector(Injector injector)
AdaptableTypeListener needs to obtain a
reference to an Injector, which is forwarded to the
AdapterInjector, which it registers for any IAdaptable
encounters, to obtain the AdapterMap bindings to be injected.injector - The injector that is forwarded (used to inject) the
AdapterInjector.Copyright (c) 2014 itemis AG and others. All rights reserved.