@CheckForNull @Override public Measure getMeasure(Resource resource, org.sonar.api.batch.measure.Metric<?> metric) { return getMeasures(resource, MeasuresFilters.metric(metric)); }
public static MeasuresFilter<RuleMeasure> rule(final Metric metric, final Rule rule) { return rule(metric, rule.ruleKey()); }
Set<RuleKey> ruleKeys = Sets.newHashSet(); Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.rules(metric)); for (Measure child : children) { RuleMeasure childRuleMeasure = (RuleMeasure) child;
for (Measure measure : context.getMeasures(MeasuresFilters.all())) {
private void saveMeasures(DecoratorContext context, List<Issue> issues) { Long total = 0L; SumMap<RuleKey> ruleDebts = new SumMap<RuleKey>(); SumMap<Characteristic> characteristicDebts = new SumMap<Characteristic>(); // Aggregate rules debt from current issues (and populate current characteristic debt) for (Issue issue : issues) { Long debt = ((DefaultIssue) issue).debtInMinutes(); total += computeDebt(debt, issue.ruleKey(), ruleDebts, characteristicDebts); } // Aggregate rules debt from children (and populate children characteristics debt) for (Measure measure : context.getChildrenMeasures(MeasuresFilters.rules(CoreMetrics.TECHNICAL_DEBT))) { Long debt = measure.getValue().longValue(); RuleMeasure ruleMeasure = (RuleMeasure) measure; total += computeDebt(debt, ruleMeasure.ruleKey(), ruleDebts, characteristicDebts); } context.saveMeasure(CoreMetrics.TECHNICAL_DEBT, total.doubleValue()); saveOnRule(context, ruleDebts); for (Characteristic characteristic : model.characteristics()) { Long debt = characteristicDebts.get(characteristic); saveCharacteristicMeasure(context, characteristic, debt != null ? debt.doubleValue() : 0d, false); } }
@CheckForNull @Override public Measure getMeasure(Resource resource, org.sonar.api.batch.measure.Metric<?> metric) { return getMeasures(resource, MeasuresFilters.metric(metric)); }
private void saveIssuesPerRules(DecoratorContext context, RulePriority severity, Map<RulePriority, Multiset<RuleKey>> rulesPerSeverity) { Metric metric = SeverityUtils.severityToIssueMetric(severity); Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.rules(metric)); for (Measure child : children) { RuleMeasure childRuleMeasure = (RuleMeasure) child; RuleKey ruleKey = childRuleMeasure.ruleKey(); if (ruleKey != null && MeasureUtils.hasValue(childRuleMeasure)) { Multiset<RuleKey> rulesBag = initRules(rulesPerSeverity, severity); rulesBag.add(ruleKey, childRuleMeasure.getIntValue()); } } Multiset<RuleKey> rulesBag = rulesPerSeverity.get(severity); if (rulesBag != null) { for (Multiset.Entry<RuleKey> entry : rulesBag.entrySet()) { RuleMeasure measure = RuleMeasure.createForRule(metric, entry.getElement(), (double) entry.getCount()); measure.setSeverity(severity); context.saveMeasure(measure); } } }
public static MeasuresFilter<Measure> metric(final org.sonar.api.batch.measure.Metric<?> metric) { return metric(metric.key()); }
@Override public Measure getMeasure(Metric metric) { return getMeasures(MeasuresFilters.metric(metric)); }
@Override public Collection<Measure> getChildrenMeasures(Metric metric) { return getChildrenMeasures(MeasuresFilters.metric(metric)); }
private void saveIssuesForSeverity(DecoratorContext context, RulePriority ruleSeverity, Multiset<RulePriority> severitiesBag) { Metric metric = SeverityUtils.severityToIssueMetric(ruleSeverity); if (context.getMeasure(metric) == null) { Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.metric(metric)); int sum = MeasureUtils.sum(true, children).intValue() + severitiesBag.count(ruleSeverity); context.saveMeasure(metric, (double) sum); } }