public static RuleMeasure createForPriority(Metric metric, RulePriority priority, @Nullable Double value) { return new RuleMeasure(metric, (RuleKey) null, priority, null).setValue(value); }
@Override public int hashCode() { return new HashCodeBuilder(17, 37) .append(getMetric()) .append(personId) .append(ruleKey) .toHashCode(); }
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); } } }
for (Measure child : children) { RuleMeasure childRuleMeasure = (RuleMeasure) child; RuleKey ruleKey = childRuleMeasure.ruleKey(); if (ruleKey != null) { childMeasuresPerRuleKeys.put(ruleKey, childRuleMeasure); RuleMeasure measure = RuleMeasure.createForRule(metric, ruleKey, null); measure.setSeverity(severity); for (Period period : timeMachineConfiguration.periods()) { int variationIndex = period.getIndex(); double sum = MeasureUtils.sumOnVariation(true, variationIndex, childMeasuresPerRuleKeys.get(ruleKey)) + countIssues(issuesPerRuleKeys.get(ruleKey), period); measure.setVariation(variationIndex, sum);
if (measure instanceof RuleMeasure) { RuleMeasure ruleMeasure = (RuleMeasure) measure; model.setRulePriority(ruleMeasure.getSeverity()); RuleKey ruleKey = ruleMeasure.ruleKey(); if (ruleKey != null) { Rule ruleWithId = ruleFinder.findByKey(ruleKey);
@VisibleForTesting void saveRuleMeasure(DecoratorContext context, org.sonar.api.rules.Rule rule, Double value, boolean inMemory) { // we need the value on projects (root or module) even if value==0 in order to display correctly the SQALE history chart (see SQALE-122) // BUT we don't want to save zero-values for non top-characteristics (see SQALE-147) if (value > 0.0) { RuleMeasure measure = new RuleMeasure(CoreMetrics.TECHNICAL_DEBT, rule, null, null); saveMeasure(context, measure, value, inMemory); } }
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(); }
public static RuleMeasure createForRule(Metric metric, RuleKey ruleKey, @Nullable Double value) { return new RuleMeasure(metric, ruleKey, null, null).setValue(value); }
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (!(obj.getClass().equals(RuleMeasure.class))) { // for the moment. return false; } if (this == obj) { return true; } RuleMeasure other = (RuleMeasure) obj; return new EqualsBuilder() .append(getMetric(), other.getMetric()) .append(personId, other.personId) .append(ruleKey, other.ruleKey) .isEquals(); }
private boolean apply(Measure measure) { return measure instanceof RuleMeasure && metric.equals(measure.getMetric()) && measure.getPersonId() == null && ((RuleMeasure) measure).ruleKey() != null; }
/** * @deprecated since 2.5. See SONAR-2007. */ @Deprecated public static RuleMeasure createForCategory(Metric metric, Integer category, @Nullable Double value) { return new RuleMeasure(metric, (RuleKey) null, null, category).setValue(value); } }
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); } }
/** * @deprecated since 4.4 use {@link #createForRule(Metric, RuleKey, Double)} */ @Deprecated public static RuleMeasure createForRule(Metric metric, Rule rule, @Nullable Double value) { return new RuleMeasure(metric, rule, null, null).setValue(value); }
Integer ruleId = null; if (measure instanceof RuleMeasure) { Rule rule = ruleFinder.findByKey(((RuleMeasure) measure).ruleKey()); if (rule != null) { ruleId = rule.getId();