public class AdapterStore extends java.lang.Object implements IAdaptable
AdapterStore is a basic IAdaptable implementation that can
be used standalone.IAdaptable.Bound<A extends IAdaptable>ADAPTERS_PROPERTY| Constructor and Description |
|---|
AdapterStore() |
| Modifier and Type | Method and Description |
|---|---|
void |
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Register a
PropertyChangeListener at this
IPropertyChangeNotifier. |
<T> T |
getAdapter(AdapterKey<? super T> key)
Returns an adapter for the given
AdapterKey if one can
unambiguously be retrieved, i.e. if there is only a single adapter that
'matches' the given AdapterKey. |
<T> T |
getAdapter(java.lang.Class<? super T> key)
Returns an adapter for the given
Class key if one can
unambiguously be retrieved. |
<T> T |
getAdapter(com.google.common.reflect.TypeToken<? super T> key)
Returns an adapter for the given
TypeToken key if one can
unambiguously be retrieved. |
<T> java.util.Map<AdapterKey<? extends T>,T> |
getAdapters(java.lang.Class<? super T> key)
Returns all adapters 'matching' the given
Class key, i.e. all
adapters whose AdapterKey's TypeToken key
AdapterKey.getKey()) refers to the same or a sub-type of the
given Class key (see TypeToken.isAssignableFrom(Type)). |
<T> java.util.Map<AdapterKey<? extends T>,T> |
getAdapters(com.google.common.reflect.TypeToken<? super T> key)
Returns all adapters 'matching' the given
TypeToken key, i.e. all
adapters whose AdapterKey's TypeToken key
AdapterKey.getKey()) refers to the same or a sub-type or of the
given TypeToken key (see
TypeToken.isAssignableFrom(TypeToken)). |
void |
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Unregister an already registered
PropertyChangeListener from this
IPropertyChangeNotifier. |
<T> void |
setAdapter(AdapterKey<? super T> key,
T adapter)
Registers the given adapter under the given
AdapterKey. |
<T> void |
setAdapter(java.lang.Class<? super T> key,
T adapter)
Registers the given adapter under an
AdapterKey, which will use a
TypeToken representing the given Class key, i.e. using
TypeToken.of(Class), as well as the default role (see
AdapterKey.DEFAULT_ROLE. |
<T> void |
setAdapter(com.google.common.reflect.TypeToken<? super T> key,
T adapter)
Registers the given adapter under an
AdapterKey, which will use
the given TypeToken key as well as the default role (see
AdapterKey.DEFAULT_ROLE. |
<T> T |
unsetAdapter(AdapterKey<? super T> key)
Unregisters the adapter registered under the exact
AdapterKey
given, returning it for convenience. |
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
IPropertyChangeNotifierPropertyChangeListener at this
IPropertyChangeNotifier.addPropertyChangeListener in interface IPropertyChangeNotifierlistener - The PropertyChangeListener to register.PropertyChangeSupport.addPropertyChangeListener(PropertyChangeListener)public <T> T getAdapter(AdapterKey<? super T> key)
IAdaptableAdapterKey if one can
unambiguously be retrieved, i.e. if there is only a single adapter that
'matches' the given AdapterKey.
An adapter 'matching' the AdapterKey is an adapter, which is
registered with an AdapterKey, whose TypeToken key (
AdapterKey.getKey()) refers to the same type or a sub-type of the
given AdapterKey's TypeToken key (@see
TypeToken.isAssignableFrom(TypeToken) and whose role (
AdapterKey.getRole())) equals the role of the given
AdapterKey's role.
If there is more than one adapter that 'matches' the given
AdapterKey, or there is no one 'matching' it, null
will be returned.
getAdapter in interface IAdaptableT - The adapter type.key - The AdapterKey used to retrieve a registered adapter.AdapterKey or null if none could be
retrieved.public <T> T getAdapter(java.lang.Class<? super T> key)
IAdaptableClass key if one can
unambiguously be retrieved. That is, if there is only a single adapter
that 'matches' the given Class key, this adapter is returned,
ignoring the role under which it is registered (see
AdapterKey.getRole()).
An adapter 'matching' the Class key is an adapter, which is
registered with an AdapterKey, whose key (
AdapterKey.getKey()) refers to the same type or a sub-type of the
given Class key (see TypeToken.isAssignableFrom(Type)).
If there is more than one adapter that 'matches' the given Class
key, it will return the single adapter that is registered for the default
role (AdapterKey.DEFAULT_ROLE), if there is a single adapter for
which this holds. Otherwise it will return null.
getAdapter in interface IAdaptableT - The adapter type.key - The Class key used to retrieve a registered adapter.Class
key or null if none could be retrieved.public <T> T getAdapter(com.google.common.reflect.TypeToken<? super T> key)
IAdaptableTypeToken key if one can
unambiguously be retrieved. That is, if there is only a single adapter
that 'matches' the given TypeToken key, this adapter is returned,
ignoring the role under which it is registered (see
AdapterKey.getRole()).
An adapter 'matching' the TypeToken key is an adapter, which is
registered with an AdapterKey, whose key (
AdapterKey.getKey()) refers to the same type or a sub-type of the
given type key (see TypeToken.isAssignableFrom(TypeToken).
If there is more than one adapter that 'matches' the given
TypeToken key, it will return the single adapter that is
registered for the default role (AdapterKey.DEFAULT_ROLE), if
there is a single adapter for which this holds. Otherwise it will return
null.
getAdapter in interface IAdaptableT - The adapter type.key - The TypeToken key used to retrieve a registered
adapter.TypeToken key or null if none could be
retrieved.public <T> java.util.Map<AdapterKey<? extends T>,T> getAdapters(java.lang.Class<? super T> key)
IAdaptableClass key, i.e. all
adapters whose AdapterKey's TypeToken key
AdapterKey.getKey()) refers to the same or a sub-type of the
given Class key (see TypeToken.isAssignableFrom(Type)).getAdapters in interface IAdaptableT - The adapter type.key - The Class key to retrieve adapters for.Map containing all those adapters registered at this
IAdaptable, whose AdapterKey's TypeToken
key (AdapterKey.getKey()) refers to the same or a
sub-type of the given Class key, qualified by their
respective AdapterKeys.IAdaptable.getAdapter(Class)public <T> java.util.Map<AdapterKey<? extends T>,T> getAdapters(com.google.common.reflect.TypeToken<? super T> key)
IAdaptableTypeToken key, i.e. all
adapters whose AdapterKey's TypeToken key
AdapterKey.getKey()) refers to the same or a sub-type or of the
given TypeToken key (see
TypeToken.isAssignableFrom(TypeToken)).getAdapters in interface IAdaptableT - The adapter type.key - The TypeToken key to retrieve adapters for.Map containing all those adapters registered at this
IAdaptable, whose AdapterKey's TypeToken
key (AdapterKey.getKey()) refers to the same or a
sub-type of the given TypeToken key, qualified by their
respective AdapterKeys.IAdaptable.getAdapter(TypeToken)public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
IPropertyChangeNotifierPropertyChangeListener from this
IPropertyChangeNotifier.removePropertyChangeListener in interface IPropertyChangeNotifierlistener - The PropertyChangeListener to unregister.PropertyChangeSupport.removePropertyChangeListener(PropertyChangeListener)public <T> void setAdapter(AdapterKey<? super T> key, T adapter)
IAdaptableAdapterKey. The
adapter has to be compliant to the AdapterKey, i.e. it has to be
of the same type or a sub-type of the AdapterKey's type key (
AdapterKey.getKey()).
If the given adapter implements IAdaptable.Bound, the adapter
will obtain a back-reference to this IAdaptable via its
IAdaptable.Bound.setAdaptable(IAdaptable) method.
setAdapter in interface IAdaptableT - The adapter type.key - The AdapterKey under which to register the given
adapter.adapter - The adapter to register under the given AdapterKey.public <T> void setAdapter(java.lang.Class<? super T> key,
T adapter)
IAdaptableAdapterKey, which will use a
TypeToken representing the given Class key, i.e. using
TypeToken.of(Class), as well as the default role (see
AdapterKey.DEFAULT_ROLE.
If the given adapter implements IAdaptable.Bound, the adapter
will obtain a back-reference to this IAdaptable via its
IAdaptable.Bound.setAdaptable(IAdaptable) method.
setAdapter in interface IAdaptableT - The adapter type.key - The Class under which to register the given adapter.adapter - The adapter to register under the given Class key.IAdaptable.setAdapter(AdapterKey, Object)public <T> void setAdapter(com.google.common.reflect.TypeToken<? super T> key,
T adapter)
IAdaptableAdapterKey, which will use
the given TypeToken key as well as the default role (see
AdapterKey.DEFAULT_ROLE.
If the given adapter implements IAdaptable.Bound, the adapter
will obtain a back-reference to this IAdaptable via its
IAdaptable.Bound.setAdaptable(IAdaptable) method.
setAdapter in interface IAdaptableT - The adapter type.key - The TypeToken under which to register the given
adapter.adapter - The adapter to register under the given TypeToken key.IAdaptable.setAdapter(AdapterKey, Object)public <T> T unsetAdapter(AdapterKey<? super T> key)
IAdaptableAdapterKey
given, returning it for convenience.
If the given adapter implements IAdaptable.Bound, the
back-reference to this IAdaptable will be removed via its
IAdaptable.Bound.setAdaptable(IAdaptable) method, passing over
null.
unsetAdapter in interface IAdaptableT - The adapter type.key - The AdapterKey for which to remove a registered
adapter.Copyright (c) 2014 itemis AG and others. All rights reserved.