package nl.topicus.onderwijs.dashboard.modules.standard;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import nl.topicus.onderwijs.dashboard.datasources.Alerts;
import nl.topicus.onderwijs.dashboard.datasources.ProjectAlerts;
import nl.topicus.onderwijs.dashboard.datatypes.Alert;
import nl.topicus.onderwijs.dashboard.keys.Project;
import nl.topicus.onderwijs.dashboard.modules.DataSource;
import nl.topicus.onderwijs.dashboard.modules.DashboardRepository;
import nl.topicus.onderwijs.dashboard.web.WicketApplication;
public class ProjectAlertImpl implements ProjectAlerts {
private Project project;
public ProjectAlertImpl(Project project) {
this.project = project;
}
@Override
public List<Alert> getValue() {
List<Alert> ret = new ArrayList<Alert>();
DashboardRepository repository = WicketApplication.get().getRepository();
Collection<DataSource<?>> dataSources = repository.getData(project);
for (DataSource<?> curDataSource : dataSources) {
if (curDataSource instanceof ProjectAlerts)
continue;
if (curDataSource instanceof Alerts) {
List<Alert> newAlerts = ((Alerts) curDataSource).getValue();
if (newAlerts != null)
ret.addAll(newAlerts);
}
}
return ret;
}
}