package hudson.plugins.rubyMetrics.railsStats;
import hudson.model.AbstractBuild;
import hudson.model.HealthReport;
import hudson.plugins.rubyMetrics.AbstractRubyMetricsBuildAction;
import hudson.plugins.rubyMetrics.railsStats.model.RailsStatsMetrics;
import hudson.plugins.rubyMetrics.railsStats.model.RailsStatsResults;
import hudson.util.ChartUtil;
import hudson.util.DataSetBuilder;
import hudson.util.ChartUtil.NumberOnlyBuildLabel;
import java.util.Map;
public class RailsStatsBuildAction extends AbstractRubyMetricsBuildAction {
private final RailsStatsResults results;
public RailsStatsBuildAction(AbstractBuild<?, ?> owner, RailsStatsResults results) {
super(owner);
this.results = results;
}
public RailsStatsResults getResults() {
return results;
}
public String getDisplayName() {
return "Rails stats";
}
public String getUrlName() {
return "railsStats";
}
@Override
protected DataSetBuilder<String, NumberOnlyBuildLabel> getDataSetBuilder() {
DataSetBuilder<String, ChartUtil.NumberOnlyBuildLabel> dsb = new DataSetBuilder<String, ChartUtil.NumberOnlyBuildLabel>();
Map<RailsStatsMetrics, Integer> total = results.getTotal();
for (RailsStatsBuildAction a = this; a != null; a = a.getPreviousResult()) {
ChartUtil.NumberOnlyBuildLabel label = new ChartUtil.NumberOnlyBuildLabel(a.owner);
for (Map.Entry<RailsStatsMetrics, Integer> entry : total.entrySet()) {
dsb.add(entry.getValue(), entry.getKey().prettyPrint(), label);
}
}
return dsb;
}
}