package com.datascience.scheduler;
import com.datascience.core.base.LObject;
import com.datascience.core.base.Project;
import com.datascience.core.base.Worker;
import com.datascience.core.results.INewResultsListener;
/**
* @Author: konrad
*/
public class SchedulerNewResultsNotificator<T, U, V> implements ISchedulerNotificator<T>, INewResultsListener<T, U, V> {
protected IScheduler<T> scheduler;
public SchedulerNewResultsNotificator(){};
public SchedulerNewResultsNotificator(IScheduler<T> scheduler){
this.scheduler = scheduler;
}
@Override
public void setScheduler(IScheduler<T> scheduler){
this.scheduler = scheduler;
}
@Override
public void newResultsForAll() {
scheduler.update();
}
@Override
public void newResultsForObject(LObject<T> object, U results) {
scheduler.update(object);
}
@Override
public void newResultsForWorker(Worker worker, V results) {
// We don't care
}
@Override
public void registerOnProject(Project project) {
project.getResults().addNewResultsListener(this);
}
}