public static Table useMixedTableOperations(
      Table table,
      String tableLocation,
      AuthenticatedFileIO authenticatedFileIO,
      Configuration configuration) {
    if (table instanceof org.apache.iceberg.BaseTable) {
      org.apache.iceberg.BaseTable baseTable = (org.apache.iceberg.BaseTable) table;
      if (baseTable.operations() instanceof MixedHadoopTableOperations) {
        return table;
      } else if (baseTable.operations() instanceof MixedTableOperations) {
        return table;
      } else if (baseTable.operations() instanceof HadoopTableOperations) {
        return new org.apache.iceberg.BaseTable(
            new MixedHadoopTableOperations(
                new Path(tableLocation), authenticatedFileIO, configuration),
            table.name());
      } else {
        return new org.apache.iceberg.BaseTable(
            new MixedTableOperations(((BaseTable) table).operations(), authenticatedFileIO),
            table.name());
      }
    }
    return table;
  }
Wrap table operation with authorization logic for {@link Table}.
amoro-format-iceberg/src/main/java/org/apache/amoro/utils/MixedFormatCatalogUtil.java