package nl.topicus.onderwijs.dashboard.modules.hudson;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import nl.topicus.onderwijs.dashboard.datasources.HudsonBuildNumber;
import nl.topicus.onderwijs.dashboard.datatypes.hudson.Job;
import nl.topicus.onderwijs.dashboard.keys.Project;
class HudsonBuildNumberImpl implements HudsonBuildNumber {
private Project project;
private HudsonService service;
HudsonBuildNumberImpl(Project project, HudsonService service) {
this.project = project;
this.service = service;
}
@Override
public Integer getValue() {
class BuildNumberComparator implements Comparator<Job> {
@Override
public int compare(Job o1, Job o2) {
return o1.getNextBuildNumber() - o2.getNextBuildNumber();
}
}
List<Job> jobs = service.getJobs(project);
if (jobs.isEmpty())
return null;
Job jobWithHighestNextBuildNumber = Collections.max(jobs,
new BuildNumberComparator());
return jobWithHighestNextBuildNumber.getNextBuildNumber() - 1;
}
}