package com.datascience.scheduler; import com.datascience.core.algorithms.INewDataObserver; import com.datascience.core.base.AssignedLabel; import com.datascience.core.base.LObject; import com.datascience.core.base.Project; import com.datascience.core.base.Worker; /** * @Author: konrad */ public class SchedulerNewDataNotificator<T> implements ISchedulerNotificator<T>, INewDataObserver<T> { protected IScheduler<T> scheduler; public SchedulerNewDataNotificator(){} public SchedulerNewDataNotificator(IScheduler<T> scheduler){ this.scheduler = scheduler; } @Override public void setScheduler(IScheduler<T> scheduler){ this.scheduler = scheduler; } @Override public void newAssign(AssignedLabel<T> assign) { scheduler.update(assign.getLobject()); } @Override public void newGoldObject(LObject<T> object) { scheduler.update(object); } @Override public void newObject(LObject<T> object) { scheduler.update(object); } @Override public void newWorker(Worker worker) { // We ignore it } @Override public void registerOnProject(Project project) { project.getData().addNewUpdatableAlgorithm(this); } }