class AddCheckSumReplicaTableFactory extends ReplicaTableFactory {

  @Override
  Partition newReplicaPartition(
      String eventId,
      Table sourceTable,
      Partition sourcePartition,
      String replicaDatabaseName,
      String replicaTableName,
      Path replicaPartitionLocation,
      ReplicationMode replicationMode) {
    Partition replica = super.newReplicaPartition(eventId, sourceTable, sourcePartition, replicaDatabaseName,
        replicaTableName, replicaPartitionLocation, replicationMode);
    String checksum = checksumFunction.apply(locationAsPath(sourcePartition));
    replica.putToParameters(PARTITION_CHECKSUM.parameterName(), checksum);
    return replica;
  }

    AddCheckSumReplicaTableFactory(
      HiveConf sourceHiveConf,
      Function<Path, String> checksumFunction,
      TableTransformation tableTransformation,
      PartitionTransformation partitionTransformation,
      ColumnStatisticsTransformation columnStatisticsTransformation);

}