package hudson.plugins.performance;
import hudson.model.Job;
import hudson.model.ModelObject;
import hudson.model.Run;
import hudson.plugins.performance.actions.PerformanceBuildAction;
import hudson.plugins.performance.reports.PerformanceReport;
import hudson.plugins.performance.data.PerformanceReportPosition;
import hudson.plugins.performance.reports.UriReport;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import java.io.IOException;
import java.util.ArrayList;
public class TrendReportGraphs implements ModelObject {
private Run<?, ?> build;
private String filename;
private PerformanceReport performanceReport;
private Job<?, ?> project;
public TrendReportGraphs(final Job<?, ?> project,
final Run<?, ?> build, final StaplerRequest request,
String filename, PerformanceReport performanceReport) {
this.build = build;
this.filename = filename;
this.performanceReport = performanceReport;
this.project = project;
}
public void doRespondingTimeGraph(StaplerRequest request,
StaplerResponse response) throws IOException {
PerformanceReportPosition performanceReportPosition = new PerformanceReportPosition();
request.bindParameters(performanceReportPosition);
PerformanceBuildAction performanceBuildAction = build
.getAction(PerformanceBuildAction.class);
if (performanceBuildAction != null) {
if (performanceReport != null) {
String uri = performanceReportPosition.getSummarizerTrendUri();
if (uri != null) {
UriReport uriReport = performanceReport.getUriReportMap().get(uri);
uriReport.doSummarizerTrendGraph(request, response);
}
}
}
}
public ArrayList<String> getUris() {
ArrayList<String> uriList = new ArrayList<String>();
PerformanceReport report = getPerformanceReport();
if (report != null) {
uriList.addAll(report.getUriReportMap().keySet());
}
return uriList;
}
public UriReport getUriReport(String uri) {
if (performanceReport != null) {
return performanceReport.getUriReportMap().get(uri);
} else {
return build.getAction(PerformanceBuildAction.class)
.getPerformanceReportMap().getUriReport(uri);
}
}
public String getDisplayName() {
return Messages.TrendReportDetail_DisplayName();
}
public String getFilename() {
return filename;
}
public Job<?, ?> getProject() {
return project;
}
public Run<?, ?> getBuild() {
return build;
}
public PerformanceReport getPerformanceReport() {
return performanceReport;
}
}