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