package hudson.plugins.crap4j;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.kohsuke.stapler.StaplerProxy;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
public class Crap4JProjectAction implements Action, StaplerProxy {
private static final long serialVersionUID = -2146614418093678624L;
private final AbstractProject<?, ?> project;
public Crap4JProjectAction(AbstractProject<?, ?> project) {
super();
this.project = project;
}
//@Override
public String getDisplayName() {
return "Crap";
}
//@Override
public String getIconFileName() {
return "/plugin/crap4j/icons/crap-32x32.gif";
}
//@Override
public String getUrlName() {
return "crap";
}
//@Override
public Object getTarget() {
return this;
}
public AbstractProject<?, ?> getOwner() {
return this.project;
}
public final boolean hasValidResults(final AbstractBuild<?, ?> build) {
if (build != null) {
Crap4JBuildAction resultAction = build.getAction(Crap4JBuildAction.class);
if (resultAction != null) {
return resultAction.hasPreviousCrap();
}
}
return false;
}
public void doGraph(final StaplerRequest request, final StaplerResponse response) throws IOException {
doTrend(request, response);
}
public Crap4JBuildAction getLastResultAction() {
AbstractBuild<?, ?> lastSuccessfulBuild = this.project.getLastSuccessfulBuild();
if (null == lastSuccessfulBuild) {
return null;
}
Crap4JBuildAction action = lastSuccessfulBuild.getAction(Crap4JBuildAction.class);
return action;
}
public void doTrendMap(final StaplerRequest request, final StaplerResponse response) throws IOException {
Crap4JBuildAction action = getLastResultAction();
if (action == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
action.doGraphMap(request, response);
}
public void doTrend(final StaplerRequest request, final StaplerResponse response) throws IOException {
Crap4JBuildAction action = getLastResultAction();
if (action == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
action.doGraph(request, response);
}
}