Class AdapterStore

    • 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, 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 
      Modifier and Type Method Description
      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.
      • 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

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