package com.datascience.scheduler; import com.datascience.core.base.IData; import com.datascience.core.base.LObject; import com.datascience.core.base.Project; public class AssignCountPriorityCalculator<T> implements IPriorityCalculator<T> { protected IData<T> data; public AssignCountPriorityCalculator() { } public AssignCountPriorityCalculator(Project<T, ?, ?, ?> project) { registerOnProject(project); } @Override public double getPriority(LObject<T> object) { return data.getAssignsForObject(object).size(); } @Override public <V, W> void registerOnProject(Project<T, ?, V, W> project) { this.data = project.getData(); } @Override public String getId(){ return "countassigns"; } @Override public <U extends IData<T>, V, W> ISchedulerNotificator<T> getSchedulerNotificator(Project<T, U, V, W> project) { return new SchedulerNewDataNotificator<T>(); } }