package hudson.plugins.iphoneview; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.scm.ChangeLogSet; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; public class IPhoneJob<P extends AbstractProject<P, B>, B extends AbstractBuild<P, B>> { private final P project; private final List<B> changedBuilds; public IPhoneJob(final P project) { this.project = project; this.changedBuilds = changedBuildsAll(); } public List<B> getChangedBuilds(final int size) { final List<B> builds = new ArrayList<B>(); final int buildsSize = changedBuilds.size(); for (int i = 0; i < Math.min(buildsSize, size); i++) { builds.add(changedBuilds.get(i)); } return Collections.unmodifiableList(builds); } public List<B> getChangedBuildsAll() { return changedBuilds; } private List<B> changedBuildsAll() { final List<B> builds = new ArrayList<B>(); for (B build : project.getBuilds()) { final Iterator<? extends ChangeLogSet.Entry> it = build.getChangeSet().iterator(); if (it.hasNext()) { builds.add(build); } } return Collections.unmodifiableList(builds); } public P getJob() { return project; } }