package nl.topicus.onderwijs.dashboard.modules.hudson; import java.util.ArrayList; import java.util.List; import nl.topicus.onderwijs.dashboard.datasources.HudsonBuildStatus; import nl.topicus.onderwijs.dashboard.datatypes.Dot; import nl.topicus.onderwijs.dashboard.datatypes.DotColor; import nl.topicus.onderwijs.dashboard.datatypes.hudson.Build; import nl.topicus.onderwijs.dashboard.keys.Project; class HudsonBuildStatusImpl implements HudsonBuildStatus { private Project project; private HudsonService service; HudsonBuildStatusImpl(Project project, HudsonService service) { this.project = project; this.service = service; } @Override public List<Dot> getValue() { List<Build> builds = service.getBuilds(project); ArrayList<Dot> result = new ArrayList<Dot>(); for (int i = 0; i < Math.min(5, builds.size()); i++) { Build build = builds.get(i); if (build.isBuilding()) { result.add(new Dot(DotColor.GRAY, build.getJob().getCode())); } else { switch (build.getResult()) { case SUCCESS: result .add(new Dot(DotColor.GREEN, build.getJob() .getCode())); break; case UNSTABLE: result.add(new Dot(DotColor.YELLOW, build.getJob() .getCode())); break; case FAILURE: result.add(new Dot(DotColor.RED, build.getJob().getCode())); break; } } } return result; } }