public static <T, C> ObjectArrayTypeInfo<T, C> getInfoFor(Type type, TypeInformation<C> componentInfo) { // generic array type e.g. for Tuples if (type instanceof GenericArrayType) { GenericArrayType genericArray = (GenericArrayType) type; return new ObjectArrayTypeInfo<T, C>(type, genericArray.getGenericComponentType(), componentInfo); } // for tuples without generics (e.g. generated by the TypeInformation parser) else if (type instanceof Class<?> && ((Class<?>) type).isArray() && Tuple.class.isAssignableFrom(((Class<?>) type).getComponentType()) && type != Tuple.class) { return new ObjectArrayTypeInfo<T, C>(type, ((Class<?>) type).getComponentType(), componentInfo); } return getInfoFor(type); }
arrayClazz = Class.forName("[L" + TUPLE_PACKAGE + "." + className + ";"); returnType = ObjectArrayTypeInfo.getInfoFor(arrayClazz, new TupleTypeInfo(clazz, types)); } else if (sb.length() >= 1 && sb.charAt(0) == '[') { try { Class<?> clazz = Class.forName("[L" + fullyQualifiedName + ";"); returnType = ObjectArrayTypeInfo.getInfoFor(clazz); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Class '" + fullyQualifiedName
@SuppressWarnings("unchecked") public static <T, C> ObjectArrayTypeInfo<T, C> getInfoFor(Type type) { // class type e.g. for custom objects if (type instanceof Class<?> && ((Class<?>) type).isArray() && BasicTypeInfo.getInfoFor((Class<C>) type) == null) { Class<C> array = (Class<C>) type; return new ObjectArrayTypeInfo<T, C>(type, array.getComponentType()); } throw new InvalidTypesException("The given type is not a valid object array."); } }
validateInfo(typeHierarchy, component, ((ObjectArrayTypeInfo<?, ?>) typeInfo).getComponentInfo());
return ObjectArrayTypeInfo.getInfoFor(clazz);
return ObjectArrayTypeInfo.getInfoFor(t, componentInfo);