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);
	}
public static < T , C > ObjectArrayTypeInfo < T , C > getInfoFor ( Type type , TypeInformation < C > componentInfo ) { if ( type instanceof GenericArrayType ) { GenericArrayType genericArray = ( GenericArrayType ) type ; return new ObjectArrayTypeInfo < T , C > ( type , genericArray . getGenericComponentType ( ) , componentInfo ) ; } 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 ) ; }
--------------------------------------------------------------------------------------------