private static MixedFormatCatalog buildCatalog(String impl) {
    DynConstructors.Ctor<MixedFormatCatalog> ctor;
    try {
      ctor = DynConstructors.builder(MixedFormatCatalog.class).impl(impl).buildChecked();
    } catch (NoSuchMethodException e) {
      throw new IllegalArgumentException(
          String.format("Cannot initialize Catalog implementation %s: %s", impl, e.getMessage()),
          e);
    }
    try {
      return ctor.newInstance();
    } catch (ClassCastException e) {
      throw new IllegalArgumentException(
          String.format("Cannot initialize Catalog, %s does not implement Catalog.", impl), e);
    }
  }
build and initialize a mixed-format catalog.

@param catalogName catalog-name
@param metastoreType metastore type
@param properties catalog properties
@param metaStore auth context
@return initialized catalog.
amoro-format-iceberg/src/main/java/org/apache/amoro/mixed/CatalogLoader.java