public static Set<TableKind> toFlinkTableKinds(@Nullable List<String> tableTypes) {
        Set<TableKind> tableKinds = new HashSet<>();
        if (tableTypes == null || tableTypes.isEmpty()) {
            tableKinds.addAll(Arrays.asList(TableKind.values()));
            return tableKinds;
        }

        for (String tableType : tableTypes) {
            if (!TABLE_TYPE_MAPPINGS.containsKey(tableType)) {
                throw new UnsupportedOperationException(
                        String.format(
                                "Can not find the mapping from the TableType '%s' to the Flink TableKind. Please remove it from the specified tableTypes.",
                                tableType));
            }
            tableKinds.add(TABLE_TYPE_MAPPINGS.get(tableType));
        }
        return tableKinds;
    }
@Test
    public void testUnsupportedHiveTableTypeToFlinkTableKind() {
        assertThatThrownBy(
                        () ->
                                toFlinkTableKinds(
                                        Collections.singletonList(
                                                ClassicTableTypes.MATERIALIZED_VIEW.name())))
                .satisfies(
                        anyCauseMatches(
                                UnsupportedOperationException.class,
                                "Can not find the mapping from the TableType 'MATERIALIZED_VIEW' to the Flink TableKind."
                                        + " Please remove it from the specified tableTypes."));
    }