Class AdapterStore

java.lang.Object
org.eclipse.gef.common.adapt.AdapterStore
All Implemented Interfaces:
IAdaptable

public class AdapterStore extends Object implements IAdaptable
An AdapterStore is a basic IAdaptable implementation that can be used standalone.
  • Property Details

  • Constructor Details

    • AdapterStore

      public AdapterStore()
      Creates a new AdapterStore with no initial adapters.
    • AdapterStore

      public AdapterStore(T adapter)
      Creates a new AdapterStore with the single given initial adapter, using the 'default' role.
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapter - The adapter to be registered.
    • AdapterStore

      public AdapterStore(TypeToken<T> adapterType, T adapter)
      Creates a new AdapterStore with the single given initial adapter, using the 'default' role.
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapterType - The runtime type of the adapter to be registered.
      adapter - The adapter to be registered.
    • AdapterStore

      public AdapterStore(TypeToken<T> adapterType, T adapter, String role)
      Creates a new AdapterStore with the single given initial adapter.
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapterType - The runtime type of the adapter to be registered.
      adapter - The adapter to be registered.
      role - The role under which the adapter is to be registered.
  • Method Details

    • adaptersProperty

      public javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,Object> adaptersProperty()
      Description copied from interface: IAdaptable
      Returns an unmodifiable read-only map property that contains the registered adapters by their keys.
      Specified by:
      adaptersProperty in interface IAdaptable
      Returns:
      An unmodifiable read-only map property.
      See Also:
    • clear

      public void clear()
      Removes all registered adapters from this AdapterStore.
    • getAdapter

      public <T> T getAdapter(AdapterKey<T> key)
      Description copied from interface: IAdaptable
      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.

      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 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.

      Specified by:
      getAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      key - The AdapterKey used to retrieve a registered adapter.
      Returns:
      The unambiguously retrievable adapter for the given AdapterKey or null if none could be retrieved.
    • getAdapter

      public <T> T getAdapter(Class<T> key)
      Description copied from interface: IAdaptable
      Returns an adapter for the given Class 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.

      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.

      Specified by:
      getAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      key - The Class key used to retrieve a registered adapter.
      Returns:
      The unambiguously retrievable adapter for the given Class key or null if none could be retrieved.
    • getAdapter

      public <T> T getAdapter(TypeToken<T> key)
      Description copied from interface: IAdaptable
      Returns an adapter for the given TypeToken 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.

      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.

      Specified by:
      getAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      key - The TypeToken key used to retrieve a registered adapter.
      Returns:
      The unambiguously retrievable adapter for the given TypeToken key or null if none could be retrieved.
    • getAdapterKey

      public <T> AdapterKey<T> getAdapterKey(T adapter)
      Description copied from interface: IAdaptable
      Returns the key under which the given adapter is bound.
      Specified by:
      getAdapterKey in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapter - The adapter whose key to retrieve.
      Returns:
      The AdapterKey under which the respective adapter is bound, or null if the adapter is not registered.
    • getAdapters

      public javafx.collections.ObservableMap<AdapterKey<?>,Object> getAdapters()
      Gets the value of the property adapters.
      Specified by:
      getAdapters in interface IAdaptable
      Property description:
      Returns:
      An unmodifiable ObservableMap.
    • getAdapters

      public <T> Map<AdapterKey<? extends T>,T> getAdapters(Class<? super T> key)
      Description copied from interface: IAdaptable
      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.
      Specified by:
      getAdapters in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      key - The Class key to retrieve adapters for.
      Returns:
      A 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.
      See Also:
    • getAdapters

      public <T> Map<AdapterKey<? extends T>,T> getAdapters(TypeToken<? super T> key)
      Description copied from interface: IAdaptable
      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.
      Specified by:
      getAdapters in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      key - The TypeToken key to retrieve adapters for.
      Returns:
      A 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.
      See Also:
    • setAdapter

      public <T> void setAdapter(T adapter)
      Description copied from interface: IAdaptable
      Registers the given adapter under an AdapterKey, which takes the given raw type key as well as the 'default' role (see AdapterKey.DEFAULT_ROLE. The adapter may afterwards be retrieved by any type key 'in between' the given key type and actual raw type. If the actual type of the parameter is not a raw type but a parameterized type, it is not legitimate to use this method.

      If the given adapter implements IAdaptable.Bound, the adapter will obtain a back-reference to this IAdaptable via its IAdaptable.Bound.setAdaptable(IAdaptable) method.

      Specified by:
      setAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapter - The adapter to register under the given Class key.
      See Also:
    • setAdapter

      public <T> void setAdapter(T adapter, String role)
      Description copied from interface: IAdaptable
      Registers the given adapter under the given role .
      Specified by:
      setAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapter - The adapter to register.
      role - The role to register this adapter with.
      See Also:
    • setAdapter

      public <T> void setAdapter(TypeToken<T> adapterType, T adapter)
      Description copied from interface: IAdaptable
      Registers the given adapter under 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.

      Specified by:
      setAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapterType - The TypeToken under which to register the given adapter, which should reflect the actual adapter type.
      adapter - The adapter to register under the given TypeToken key.
      See Also:
    • setAdapter

      @InjectAdapters public <T> void setAdapter(TypeToken<T> adapterType, T adapter, String role)
      Description copied from interface: IAdaptable
      Registers the given adapter under the given 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.

      Specified by:
      setAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapterType - A TypeToken representing the actual type of the given adapter.
      adapter - The adapter to register.
      role - The role under which to register the adapter.
    • unsetAdapter

      public <T> void unsetAdapter(T adapter)
      Description copied from interface: IAdaptable
      Unregisters the given adapter under all keys it was registered for.

      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.

      Specified by:
      unsetAdapter in interface IAdaptable
      Type Parameters:
      T - The adapter type.
      Parameters:
      adapter - The adapter which should be removed.