public class AdapterInjector extends java.lang.Object implements MembersInjector<IAdaptable>
MembersInjector that supports injection of adapters into
an IAdaptable implementation class'
IAdaptable.setAdapter(TypeToken, Object, String) method, that is
marked as being eligible for adapter injection (see InjectAdapters).
Being registered for a specific IAdaptable an AdapterInjector
will inject all instances of that type or any sub-type, evaluating all
AdapterMap bindings that can be obtained from the Injector,
which was forwarded to it via setInjector(Injector). It will inject
all adapters, for which adapter (map) bindings with a matching
AdapterMap annotation exist. Here, matching means, that the type
provided in the AdapterMap annotation of the IAdaptable#s
method ( AdapterMap.adaptableType()) is either the same or a sub-type
of the type used with the AdapterMap annotation of the related
binding.
The AdapterInjector supports that type information about the actual
adapter type may be omitted from the adapter map binding (i.e. the used
AdapterKey only provides a role but no type key). It will try to
infer the actual adapter type from respective bindings, or fall back to the
type inferred from the adapter instance (which will not be adequate for
generic types because of type erasure) in such a case.
AdapterMap,
AdaptableTypeListener| Constructor and Description |
|---|
AdapterInjector(java.lang.reflect.Method method,
AdapterInjectionSupport.LoggingMode loggingMode)
Creates a new
AdapterInjector to inject the given Method,
annotated with the given AdapterMap method annotation. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
injectAdapters(IAdaptable adaptable)
Performs the adapter map injection for the given adaptable instance.
|
void |
injectMembers(IAdaptable instance) |
void |
setInjector(Injector injector)
Sets the
Injector, being used for adapter map injection. |
public AdapterInjector(java.lang.reflect.Method method,
AdapterInjectionSupport.LoggingMode loggingMode)
AdapterInjector to inject the given Method,
annotated with the given AdapterMap method annotation.
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.
method - The Method to be injected.loggingMode - The AdapterInjectionSupport.LoggingMode to use.protected void injectAdapters(IAdaptable adaptable)
adaptable - The adaptable to inject adapters into.public void injectMembers(IAdaptable instance)
injectMembers in interface MembersInjector<IAdaptable>Copyright (c) 2014 itemis AG and others. All rights reserved.