package com.progress.hudson;
import java.util.HashMap;
import hudson.model.AbstractBuild;
import hudson.model.BuildableItem;
/**
* Helper class to keep track of failed builds
*
* @author Stefan Fritz <sfritz@progress.com>
*
*/
public class FailedBuildsQueue {
private static HashMap<String, BuildItem> items=null;
public static boolean needsBuild(BuildableItem job) {
if(items!=null){
String fullName=job.getFullName();
if( items.containsKey(fullName)){
BuildItem item = items.get(fullName);
return item.readyForBuild();
}
}
return false;
}
public synchronized static void add(AbstractBuild build, String interval, String maxRetries) {
if(items==null){
items= new HashMap<String, BuildItem>();
}
String fullName=build.getParent().getFullName();
if(!items.containsKey(fullName)){
items.put(fullName, new BuildItem( build.getParent(),Integer.parseInt(interval), Integer.parseInt(maxRetries)));
}
}
public synchronized static void remove(AbstractBuild build) {
if(items!=null){
String fullName=build.getParent().getFullName();
if( items.containsKey(fullName)){
items.remove(fullName);
}
}
}
}