Package org.eclipse.sisu.inject
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
All Methods Static Methods Concrete Methods 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]
fromMap<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 exampleBar
fromMap<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.
-
-
-
Method Detail
-
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]
fromMap<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 exampleBar
fromMap<Foo,Bar>
.- Parameters:
typeLiteral
- The generic typeindex
- 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-typesubLiteral
- The generic sub-type- Returns:
true
if the sub-type can be converted to the generic super-type; otherwisefalse
- See Also:
Class.isAssignableFrom(Class)
-
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; otherwisefalse
-
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; otherwisefalse
-
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; otherwisefalse
-
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; otherwisefalse
-
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
-
-