package hudson.plugins.emma;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.Result;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import java.io.IOException;
/**
* Project view extension by Emma plugin.
*
* @author Kohsuke Kawaguchi
*/
public final class EmmaProjectAction implements Action {
public final AbstractProject<?,?> project;
public EmmaProjectAction(AbstractProject project) {
this.project = project;
}
public String getIconFileName() {
return "graph.gif";
}
public String getDisplayName() {
return Messages.ProjectAction_DisplayName();
}
public String getUrlName() {
return "emma";
}
/**
* Gets the most recent {@link EmmaBuildAction} object.
*/
public EmmaBuildAction getLastResult() {
for( AbstractBuild<?,?> b = project.getLastBuild(); b!=null; b=b.getPreviousBuild()) {
if(b.getResult()== Result.FAILURE)
continue;
EmmaBuildAction r = b.getAction(EmmaBuildAction.class);
if(r!=null)
return r;
}
return null;
}
public void doGraph(StaplerRequest req, StaplerResponse rsp) throws IOException {
if (getLastResult() != null)
getLastResult().doGraph(req,rsp);
}
}