private static String computeMeasureKey(Measure m) { StringBuilder sb = new StringBuilder(); if (m.getMetricKey() != null) { sb.append(m.getMetricKey()); } sb.append("|"); Characteristic characteristic = m.getCharacteristic(); if (characteristic != null) { sb.append(characteristic.key()); } sb.append("|"); Integer personId = m.getPersonId(); if (personId != null) { sb.append(personId); } if (m instanceof RuleMeasure) { sb.append("|"); sb.append(((RuleMeasure) m).ruleKey()); } return sb.toString(); }
private boolean apply(Measure measure) { return measure instanceof RuleMeasure && metric.equals(measure.getMetric()) && measure.getPersonId() == null && ((RuleMeasure) measure).ruleKey() != null; }
for (Measure child : children) { RuleMeasure childRuleMeasure = (RuleMeasure) child; RuleKey ruleKey = childRuleMeasure.ruleKey(); if (ruleKey != null) { childMeasuresPerRuleKeys.put(ruleKey, childRuleMeasure);
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); } }
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); } } }
Integer ruleId = null; if (measure instanceof RuleMeasure) { Rule rule = ruleFinder.findByKey(((RuleMeasure) measure).ruleKey()); if (rule != null) { ruleId = rule.getId();
RuleMeasure ruleMeasure = (RuleMeasure) measure; model.setRulePriority(ruleMeasure.getSeverity()); RuleKey ruleKey = ruleMeasure.ruleKey(); if (ruleKey != null) { Rule ruleWithId = ruleFinder.findByKey(ruleKey);