public static Class getRawType()

in cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Reflection.java [78:104]


	public static <T> Class<T> getRawType(Type type) {
		if (type instanceof Class<?>) {
			return (Class<T>) type;
		}
		if (type instanceof ParameterizedType) {
			if (((ParameterizedType) type).getRawType() instanceof Class<?>) {
				return (Class<T>) ((ParameterizedType) type).getRawType();
			}
		}
		if (type instanceof TypeVariable<?>) {
			TypeVariable<?> variable = (TypeVariable<?>) type;
			Type[] bounds = variable.getBounds();
			return getBound(bounds);
		}
		if (type instanceof WildcardType) {
			WildcardType wildcard = (WildcardType) type;
			return getBound(wildcard.getUpperBounds());
		}
		if (type instanceof GenericArrayType) {
			GenericArrayType genericArrayType = (GenericArrayType) type;
			Class<?> rawType = getRawType(genericArrayType.getGenericComponentType());
			if (rawType != null) {
				return (Class<T>) Array.newInstance(rawType, 0).getClass();
			}
		}
		return null;
	}