Class TypeArguments

java.lang.Object
org.eclipse.sisu.inject.TypeArguments

public final class TypeArguments extends Object
Utility methods for dealing with generic type arguments.
  • Method Summary

    Modifier and Type
    Method
    Description
    static com.google.inject.TypeLiteral<?>[]
    get(com.google.inject.TypeLiteral<?> typeLiteral)
    Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
    static com.google.inject.TypeLiteral<?>
    get(com.google.inject.TypeLiteral<?> typeLiteral, int index)
    Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
    static <T> com.google.inject.Key<T>
    implicitKey(Class<T> clazz)
    Creates a special binding key for the given implicit type.
    static boolean
    isAssignableFrom(com.google.inject.TypeLiteral<?> superLiteral, com.google.inject.TypeLiteral<?> subLiteral)
    Determines if the sub-type can be converted to the generic super-type via an identity or widening conversion.
    static boolean
    isConcrete(com.google.inject.TypeLiteral<?> literal)
    Determines if the given generic type represents a concrete type.
    static boolean
    isConcrete(Class<?> clazz)
    Determines if the given raw type represents a concrete type.
    static boolean
    isImplicit(com.google.inject.TypeLiteral<?> literal)
    Determines if the given generic type represents an implicit binding.
    static boolean
    isImplicit(Class<?> clazz)
    Determines if the given raw type represents an implicit binding.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • get

      public static com.google.inject.TypeLiteral<?>[] get(com.google.inject.TypeLiteral<?> typeLiteral)
      Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
      Parameters:
      typeLiteral - The generic type
      Returns:
      Array of type arguments
    • get

      public static com.google.inject.TypeLiteral<?> get(com.google.inject.TypeLiteral<?> typeLiteral, int index)
      Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
      Parameters:
      typeLiteral - The generic type
      index - The argument index
      Returns:
      Indexed type argument; TypeLiteral<Object> if the given type is a raw class
    • isAssignableFrom

      public static boolean isAssignableFrom(com.google.inject.TypeLiteral<?> superLiteral, com.google.inject.TypeLiteral<?> subLiteral)
      Determines if the sub-type can be converted to the generic super-type via an identity or widening conversion.
      Parameters:
      superLiteral - The generic super-type
      subLiteral - The generic sub-type
      Returns:
      true if the sub-type can be converted to the generic super-type; otherwise false
      See Also:
    • isConcrete

      public static boolean isConcrete(com.google.inject.TypeLiteral<?> literal)
      Determines if the given generic type represents a concrete type.
      Parameters:
      literal - The generic type
      Returns:
      true if the generic type is concrete; otherwise false
    • isConcrete

      public static boolean isConcrete(Class<?> clazz)
      Determines if the given raw type represents a concrete type.
      Parameters:
      clazz - The raw type
      Returns:
      true if the raw type is concrete; otherwise false
    • isImplicit

      public static boolean isImplicit(com.google.inject.TypeLiteral<?> literal)
      Determines if the given generic type represents an implicit binding.
      Parameters:
      literal - The generic type
      Returns:
      true if the generic type is implicit; otherwise false
    • isImplicit

      public static boolean isImplicit(Class<?> clazz)
      Determines if the given raw type represents an implicit binding.
      Parameters:
      clazz - The raw type
      Returns:
      true if the raw type is implicit; otherwise false
    • implicitKey

      public static <T> com.google.inject.Key<T> implicitKey(Class<T> clazz)
      Creates a special binding key for the given implicit type.
      Parameters:
      clazz - The implicit type
      Returns:
      Implicit binding key