package hudson.plugins.parameterizedtrigger;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.Run;
import jenkins.model.Jenkins;
import jenkins.model.RunAction2;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Shows a list of a dynamic downstream builds
*/
public class DynamicBuildAction implements RunAction2 {
private Map<String, Integer> buildsMap;
public DynamicBuildAction(Map<String, Integer> buildsMap) {
this.buildsMap = buildsMap;
}
@Override
public void onAttached(Run<?, ?> run) {
}
@Override
public void onLoad(Run<?, ?> run) {
}
public List<AbstractBuild<?, ?>> getBuilds() {
List<AbstractBuild<?, ?>> builds = new ArrayList<AbstractBuild<?, ?>>();
Jenkins j = Jenkins.getInstance();
for (Map.Entry<String, Integer> entry : buildsMap.entrySet()) {
Job<?, ?> job = j.getItemByFullName(entry.getKey(), Job.class);
if (null != job && job instanceof AbstractProject) {
AbstractProject project = (AbstractProject) job;
AbstractBuild build = project.getBuildByNumber(entry.getValue());
if (null != build) {
builds.add(build);
}
}
}
return builds;
}
@Override
public String getIconFileName() {
return null;
}
@Override
public String getDisplayName() {
return null;
}
@Override
public String getUrlName() {
return null;
}
}