Source:
<code>public HiveTableProperties(TypeManager typeManager, HiveClientConfig config) { tableProperties = ImmutableList.of( stringSessionProperty( EXTERNAL_LOCATION_PROPERTY, "File system location URI for external table", null, false), new PropertyMetadata<>( STORAGE_FORMAT_PROPERTY, "Hive storage format for the table", createUnboundedVarcharType(), HiveStorageFormat.class, config.getHiveStorageFormat(), false, value -> HiveStorageFormat.valueOf(((String) value).toUpperCase(ENGLISH)), HiveStorageFormat::toString), new PropertyMetadata<>( PARTITIONED_BY_PROPERTY, "Partition columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, value -> ImmutableList.copyOf(((Collection<?>) value).stream() .map(name -> ((String) name).toLowerCase(ENGLISH)) .collect(Collectors.toList())), value -> value), new PropertyMetadata<>( BUCKETED_BY_PROPERTY, "Bucketing columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, value -> ImmutableList.copyOf(((Collection<?>) value).stream() .map(name -> ((String) name).toLowerCase(ENGLISH)) .collect(Collectors.toList())), value -> value), new PropertyMetadata<>( ORC_BLOOM_FILTER_COLUMNS, "orc bloom index columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, <START> value -> ((Collection<?>) value).stream() <END> .map(String.class::cast) .map(name -> name.toLowerCase(ENGLISH)) .collect(toImmutableList()), value -> value), doubleSessionProperty( ORC_BLOOM_FILTER_FPP, "orc bloom filter false positive probability", config.getOrcBloomFilterFpp(), false), integerSessionProperty(BUCKET_COUNT_PROPERTY, "Number of buckets", 0, false)); }</code><technical_language>This is repeated above, add a helper. (it's confusing is slightly code)</technical_language>

Target:
public HiveTableProperties(TypeManager typeManager, HiveClientConfig config) { tableProperties = ImmutableList.of( stringSessionProperty( EXTERNAL_LOCATION_PROPERTY, "File system location URI for external table", null, false), new PropertyMetadata<>( STORAGE_FORMAT_PROPERTY, "Hive storage format for the table", createUnboundedVarcharType(), HiveStorageFormat.class, config.getHiveStorageFormat(), false, value -> HiveStorageFormat.valueOf(((String) value).toUpperCase(ENGLISH)), HiveStorageFormat::toString), new PropertyMetadata<>( PARTITIONED_BY_PROPERTY, "Partition columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, value -> ImmutableList.copyOf(((Collection<?>) value).stream() .map(name -> ((String) name).toLowerCase(ENGLISH)) .collect(Collectors.toList())), value -> value), new PropertyMetadata<>( BUCKETED_BY_PROPERTY, "Bucketing columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, value -> ImmutableList.copyOf(((Collection<?>) value).stream() .map(name -> ((String) name).toLowerCase(ENGLISH)) .collect(Collectors.toList())), value -> value), new PropertyMetadata<>( ORC_BLOOM_FILTER_COLUMNS, "ORC Bloom filter index columns", typeManager.getType(parseTypeSignature("array(varchar)")), List.class, ImmutableList.of(), false, value -> ((Collection<?>) value).stream() .map(String.class::cast) .map(name -> name.toLowerCase(ENGLISH)) .collect(toImmutableList()), value -> value), doubleSessionProperty( ORC_BLOOM_FILTER_FPP, "ORC Bloom filter false positive probability", config.getOrcDefaultBloomFilterFpp(), false), integerSessionProperty(BUCKET_COUNT_PROPERTY, "Number of buckets", 0, false)); }