Package org.eclipse.sisu.inject
Class TypeArguments
java.lang.Object
org.eclipse.sisu.inject.TypeArguments
Utility methods for dealing with generic type arguments.
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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 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]
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:
-
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
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
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
Creates a special binding key for the given implicit type.- Parameters:
clazz
- The implicit type- Returns:
- Implicit binding key
-