private AbstractCatalog createOriginalCatalog(
      TableIdentifier tableIdentifier, TableFormat tableFormat) {
    CatalogFactory catalogFactory;
    if (tableFormat.in(TableFormat.MIXED_HIVE, TableFormat.MIXED_ICEBERG)) {
      catalogFactory = new MixedCatalogFactory();
    } else if (tableFormat.equals(TableFormat.ICEBERG)) {
      catalogFactory = new IcebergFlinkCatalogFactory(hadoopConf);
    } else if (tableFormat.equals(TableFormat.PAIMON)) {
      catalogFactory =
          new PaimonFlinkCatalogFactory(
              unifiedCatalog.properties(), unifiedCatalog.metastoreType());
    } else {
      throw new UnsupportedOperationException(
          String.format(
              "Unsupported table format: [%s] in the unified catalog, table identifier is [%s], the supported table formats are [%s].",
              tableFormat, tableIdentifier, FlinkUnifiedCatalogFactory.SUPPORTED_FORMATS));
    }

    AbstractCatalog originalCatalog;
    try {
      context.getOptions().put(CatalogFactoryOptions.FLINK_TABLE_FORMATS.key(), tableFormat.name());
      originalCatalog = (AbstractCatalog) catalogFactory.createCatalog(context);
    } catch (CatalogException e) {
      if (e.getMessage().contains("must implement createCatalog(Context)")) {
        originalCatalog =
            (AbstractCatalog) catalogFactory.createCatalog(context.getName(), context.getOptions());
      } else {
        throw e;
      }
    }
    originalCatalog.open();
    availableCatalogs.put(tableFormat, originalCatalog);
    return originalCatalog;
  }
Get the original flink catalog for the given table, if the flink catalog is not exists in the
cache, would create a new original flink catalog for this table format.

@param amoroTable amoroTable
@return original Flink catalog
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/catalog/FlinkUnifiedCatalog.java