class DestructiveReplica {

  public void dropDeletedPartitions(final List<String> sourcePartitionNames) throws TException {
    try (CloseableMetaStoreClient client = replicaMetaStoreClientSupplier.get()) {
      if (!client.tableExists(databaseName, tableName)) {
        return;
      }
      dropAndDeletePartitions(client, new Predicate<String>() {
        @Override
        public boolean apply(String partitionName) {
          return !sourcePartitionNames.contains(partitionName);
        }
      });
    } finally {
      cleanupLocationManager.scheduleLocations();
    }
  }

  public  DestructiveReplica(
      Supplier<CloseableMetaStoreClient> replicaMetaStoreClientSupplier,
      CleanupLocationManager cleanupLocationManager,
      TableReplication tableReplication);

}