public class AdaptableTypeListener
extends java.lang.Object
implements com.google.inject.spi.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 Module
s
that are used by the Injector
.
AdapterInjectionSupport
Constructor and Description |
---|
AdaptableTypeListener() |
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(com.google.inject.TypeLiteral<I> type,
com.google.inject.spi.TypeEncounter<I> encounter) |
void |
setInjector(com.google.inject.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. |
@Inject public void setInjector(com.google.inject.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
.public <I> void hear(com.google.inject.TypeLiteral<I> type, com.google.inject.spi.TypeEncounter<I> encounter)
hear
in interface com.google.inject.spi.TypeListener
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.Copyright (c) 2014 itemis AG and others. All rights reserved.