Class AdapterKey<T>

  • Type Parameters:
    T - The type parameter corresponding to the type parameter of the Class used as key (getKey()).
    All Implemented Interfaces:
    java.lang.Comparable<AdapterKey<T>>

    public class AdapterKey<T>
    extends java.lang.Object
    implements java.lang.Comparable<AdapterKey<T>>
    A pair of Class key and String role to register adapters at and retrieve them from IAdaptables. Using an AdapterKey instead of just a Class or TypeToken key allows to register several adapters under the same key, serving different roles. Nevertheless, adapters can still be accessed in a type-safe manner. To register a default adapter for a certain Class or TypeToken key, the DEFAULT_ROLE may be used.

    Creating AdapterKeys is supported by get(Class, String) and get(TypeToken, String), as well as get(Class) and get(TypeToken) respectively, where the latter two will use the DEFAULT_ROLE.

    • Method Detail

      • defaultRole

        public static AdapterKey<?> defaultRole()
        Returns an AdapterKey with no type key and the 'default' role, which can only be used in adapter map bindings. See AdapterMaps.
        Returns:
        An AdapterKey without type key, using the 'default' role.
      • get

        public static <T> AdapterKey<T> get​(java.lang.Class<T> key)
        Creates a new AdapterKey for the given raw type key and the DEFAULT_ROLE role, which can be used to retrieve an adapter from an IAdaptable.
        Type Parameters:
        T - The adapter type.
        Parameters:
        key - The key to use for the newly created AdapterKey. May not be null.
        Returns:
        A new AdapterKey for the given key and role.
        See Also:
        get(Class, String)
      • get

        public static <T> AdapterKey<T> get​(java.lang.Class<T> key,
                                            java.lang.String role)
        Creates a new AdapterKey for the given key and role.
        Type Parameters:
        T - The adapter type.
        Parameters:
        key - The key to use for the newly created AdapterKey. May not be null.
        role - The role to use for the newly created AdapterKey. May not be null.
        Returns:
        A new AdapterKey for the given key and role.
      • get

        public static <T> AdapterKey<T> get​(TypeToken<T> key,
                                            java.lang.String role)
        Creates a new AdapterKey for the given key and role, which can be used to retrieve an adapter from an IAdaptable.
        Type Parameters:
        T - The adapter type.
        Parameters:
        key - The key to use for the newly created AdapterKey. May not be null.
        role - The role to use for the newly created AdapterKey. May not be null.
        Returns:
        A new AdapterKey for the given key and role.
      • role

        public static AdapterKey<?> role​(java.lang.String role)
        Returns an AdapterKey with no type key and the given role, which can only be used in adapter map bindings. See AdapterMaps.
        Parameters:
        role - The role to use.
        Returns:
        An AdapterKey without type key, using the given role.
      • compareTo

        public int compareTo​(AdapterKey<T> o)
        Specified by:
        compareTo in interface java.lang.Comparable<T>
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • getKey

        public TypeToken<T> getKey()
        Returns the key used by this AdapterKey.
        Returns:
        The key being used.
      • getRole

        public java.lang.String getRole()
        Returns the role used by this AdapterKey.
        Returns:
        The role being used.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object