class RatePerIntervalRateController extends AbstractRatePerIntervalRateController {

    public static RatePerIntervalRateController newRatePerIntervalRateController(Job<?> job,
                                                                                 EffectiveJobDisruptionBudgetResolver budgetResolver,
                                                                                 TitusRuntime titusRuntime) {
        RatePerIntervalDisruptionBudgetRate rate = (RatePerIntervalDisruptionBudgetRate) budgetResolver.resolve(job).getDisruptionBudgetRate();
        return new RatePerIntervalRateController(job, rate.getIntervalMs(), rate.getLimitPerInterval(), budgetResolver, titusRuntime);
    }

    private  RatePerIntervalRateController(Job<?> job,
                                          long intervalMs,
                                          long evictionsPerInterval,
                                          EffectiveJobDisruptionBudgetResolver budgetResolver,
                                          TitusRuntime titusRuntime);
    private  RatePerIntervalRateController(Job<?> newJob,
                                          long intervalMs,
                                          long evictionsPerInterval,
                                          RatePerIntervalRateController previous);

}