static void validateTypeForSchemaMarshalling(Class<?> type) {
    if (isNonCollectionInterface(type) || isAbstract(type)) {
      throw new IllegalArgumentException("Cannot marshal " + type.getSimpleName()
          + ". Interfaces and abstract class cannot be cannot be marshalled into consistent BigQuery data.");
    }
    if (!isCollection(type) && isGenericType(type)) {
      throw new IllegalArgumentException("Cannot marshal " + type.getSimpleName()
          + ". Parameterized type other than Collection<T> cannot be marshalled into consistent BigQuery data.");
    }
    if (Map.class.isAssignableFrom(type)) {
      throw new IllegalArgumentException(
          "Cannot marshal a map into BigQuery data " + type.getSimpleName());
    }
    if (UNSUPPORTED_TYPES.contains(type)) {
      throw new IllegalArgumentException(
          "Type cannot be marshalled into bigquery schema. " + type.getSimpleName());
    }
  }
static void validateTypeForSchemaMarshalling ( Class < ? > type ) { if ( isNonCollectionInterface ( type ) || isAbstract ( type ) ) { throw new IllegalArgumentException ( "Cannot marshal " + type . getSimpleName ( ) + ". Interfaces and abstract class cannot be cannot be marshalled into consistent BigQuery data." ) ; } if ( ! isCollection ( type ) && isGenericType ( type ) ) { throw new IllegalArgumentException ( "Cannot marshal " + type . getSimpleName ( ) + ". Parameterized type other than Collection<T> cannot be marshalled into consistent BigQuery data." ) ; } if ( Map . class . isAssignableFrom ( type ) ) { throw new IllegalArgumentException ( "Cannot marshal a map into BigQuery data " + type . getSimpleName ( ) ) ; } if ( UNSUPPORTED_TYPES . contains ( type ) ) { throw new IllegalArgumentException ( "Type cannot be marshalled into bigquery schema. " + type . getSimpleName ( ) ) ; } }
Bigquery schema cannot be generated in following cases 1. Field is an interface or an abstract
type. These types can lead to inconsistent schema at runtime. 2. Generic types. 3. {@link Map}
4. Type having reference to itself as a field.