Package org.eclipse.sisu.inject
Class TypeArguments
java.lang.Object
org.eclipse.sisu.inject.TypeArguments
Utility methods for dealing with generic type arguments.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static @interface
Qualifier
of bindings that should be treated as implicit. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final com.google.inject.TypeLiteral<?>[]
private static final com.google.inject.TypeLiteral<Object>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static com.google.inject.TypeLiteral<?>
Expands wild-card types where possible, for exampleBar
from? extends Bar
.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.private static boolean
isAssignableFrom
(Type[] superArgs, Type[] subArgs) Determines whether the resolved sub-type arguments can be assigned to their generic super-type arguments.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.
-
Field Details
-
OBJECT_TYPE_LITERAL
-
NO_TYPE_LITERALS
private static final com.google.inject.TypeLiteral<?>[] NO_TYPE_LITERALS
-
-
Constructor Details
-
TypeArguments
private TypeArguments()
-
-
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
-
expand
Expands wild-card types where possible, for exampleBar
from? extends Bar
.- Parameters:
type
- The generic type- Returns:
- Widened type that is still assignment-compatible with the original.
-
isAssignableFrom
Determines whether the resolved sub-type arguments can be assigned to their generic super-type arguments.- Parameters:
superArgs
- The generic super-argumentssubArgs
- The resolved sub-arguments- Returns:
true
if all the super-arguments have assignable resolved arguments; otherwisefalse
-