class Locomotive implements ApplicationRunner, ExitCodeGenerator {

  @VisibleForTesting
  String getReplicationSummary(TableReplication tableReplication) {
    return String.format("%s:%s to %s:%s", sourceCatalog.getName(),
        tableReplication.getSourceTable().getQualifiedName(), replicaCatalog.getName(),
        tableReplication.getQualifiedReplicaName());
  }

  @Autowired  Locomotive(
      SourceCatalog sourceCatalog,
      ReplicaCatalog replicaCatalog,
      Security security,
      TableReplications tableReplications,
      ReplicationFactory replicationFactory,
      MetricSender metricSender,
      LocomotiveListener locomotiveListener,
      TableReplicationListener tableReplicationListener);

}