Package org.eclipse.gef.common.adapt

## Class AdapterStore

- java.lang.Object
- - org.eclipse.gef.common.adapt.AdapterStore

All Implemented Interfaces:
  `IAdaptable`

    public class AdapterStore
    extends java.lang.Object
    implements IAdaptable

An `AdapterStore` is a basic `IAdaptable` implementation that can be used standalone.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.gef.common.adapt.IAdaptable

`IAdaptable.Bound<A extends IAdaptable>`

### Field Summary

### Fields inherited from interface org.eclipse.gef.common.adapt.IAdaptable

`ADAPTERS_PROPERTY`

### Constructor Summary

Constructors
`AdapterStore()` Creates a new `AdapterStore` with no initial adapters.
`AdapterStore​(TypeToken<T> adapterType, T adapter)` Creates a new AdapterStore with the single given initial adapter, using the 'default' role.
`AdapterStore​(TypeToken<T> adapterType, T adapter, java.lang.String role)` Creates a new AdapterStore with the single given initial adapter.
`AdapterStore​(T adapter)` Creates a new AdapterStore with the single given initial adapter, using the 'default' role.

### Method Summary

All Methods Instance Methods Concrete Methods
`javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,​java.lang.Object>` `adaptersProperty()` Returns an unmodifiable read-only map property that contains the registered adapters by their keys.
`void` `clear()` Removes all registered adapters from this `AdapterStore`.
`<T> T` `getAdapter​(TypeToken<T> key)` Returns an adapter for the given `TypeToken` key if one can unambiguously be retrieved.
`<T> T` `getAdapter​(java.lang.Class<T> key)` Returns an adapter for the given `Class` key if one can unambiguously be retrieved.
`<T> T` `getAdapter​(AdapterKey<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> AdapterKey<T>` `getAdapterKey​(T adapter)` Returns the key under which the given adapter is bound.
`javafx.collections.ObservableMap<AdapterKey<?>,​java.lang.Object>` `getAdapters()` Returns an unmodifiable `ObservableMap` that contains the registered adapters by their keys.
`<T> java.util.Map<AdapterKey<? extends T>,​T>` `getAdapters​(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.
`<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.
`<T> void` `setAdapter​(TypeToken<T> adapterType, T adapter)` Registers the given adapter under the 'default' role (see `AdapterKey.DEFAULT_ROLE`.
`<T> void` `setAdapter​(TypeToken<T> adapterType, T adapter, java.lang.String role)` Registers the given adapter under the given role.
`<T> void` `setAdapter​(T adapter)` Registers the given adapter under an `AdapterKey`, which takes the given raw type key as well as the 'default' role (see `AdapterKey.DEFAULT_ROLE`.
`<T> void` `setAdapter​(T adapter, java.lang.String role)` Registers the given adapter under the given role .
`<T> void` `unsetAdapter​(T adapter)` Unregisters the given adapter under all keys it was registered for.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### 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,
                        java.lang.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 Detail

#### adaptersProperty

    public javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,​java.lang.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.

#### 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​(java.lang.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<?>,​java.lang.Object> getAdapters()

Description copied from interface: `IAdaptable`
Returns an unmodifiable `ObservableMap` that contains the registered adapters by their keys.

Specified by:
  `getAdapters` in interface `IAdaptable`
Returns:
  An unmodifiable `ObservableMap`.

#### getAdapters

    public <T> java.util.Map<AdapterKey<? extends T>,​T> getAdapters​(java.lang.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 `AdapterKey`s.
See Also:
  `IAdaptable.getAdapter(Class)`

#### getAdapters

    public <T> java.util.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 `AdapterKey`s.
See Also:
  `IAdaptable.getAdapter(TypeToken)`

#### 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:
  `IAdaptable.setAdapter(Object, String)`

#### setAdapter

    public <T> void setAdapter​(T adapter,
                               java.lang.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:
  `IAdaptable.setAdapter(TypeToken, Object)`

#### 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:
  `IAdaptable.setAdapter(TypeToken, Object, String)`

#### setAdapter

    @InjectAdapters
    public <T> void setAdapter​(TypeToken<T> adapterType,
                               T adapter,
                               java.lang.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.