class JobPercentagePerIntervalRateController extends AbstractRatePerIntervalRateController {

    public static JobPercentagePerIntervalRateController newJobPercentagePerIntervalRateController(Job<?> job,
                                                                                                   EffectiveJobDisruptionBudgetResolver budgetResolver,
                                                                                                   TitusRuntime titusRuntime) {
        Pair<Long, Integer> pair = getIntervalLimitPair(job, budgetResolver);
        return new JobPercentagePerIntervalRateController(job, pair.getLeft(), pair.getRight(), budgetResolver, titusRuntime);
    }

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

}