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 Object implements IAdaptable
An `AdapterStore` is a basic `IAdaptable` implementation that can be used standalone.

## Property Summary

Properties
Type
Property
Description
`javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,Object>`
`adapters`
Returns an unmodifiable read-only map property that contains the registered adapters by their keys.

## 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
Constructor
Description
`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, 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

Modifier and Type
Method
Description
`javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,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(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<?>,Object>`
`getAdapters()`
Gets the value of the property adapters.
`<T> 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> Map<AdapterKey<? extends T>,T>`
`getAdapters(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, 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, 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`

## Property Details

### adapters

public javafx.beans.property.ReadOnlyMapProperty<AdapterKey<?>,Object> adaptersProperty

Specified by:
  `adaptersProperty` in interface `IAdaptable`
Returns:
  An unmodifiable read-only map property.
See Also:
  - `getAdapters()`

## 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:
  - `getAdapters()`

### 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 `AdapterKey`s.
See Also:
  - `IAdaptable.getAdapter(Class)`

### 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 `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, 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, 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.