private void computeViolationsPerRules(DecoratorContext context) {
    Map<RulePriority, Multiset<Rule>> rulesPerSeverity = Maps.newHashMap();
    for (Violation violation : context.getViolations()) {
      Multiset<Rule> rulesBag = initRules(rulesPerSeverity, violation.getSeverity());
      rulesBag.add(violation.getRule());
    }

    for (RulePriority severity : RulePriority.values()) {
      Metric metric = SeverityUtils.severityToViolationMetric(severity);

      Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.rules(metric));
      for (Measure child : children) {
        RuleMeasure childRuleMeasure = (RuleMeasure) child;
        Rule rule = childRuleMeasure.getRule();
        if (rule != null && MeasureUtils.hasValue(childRuleMeasure)) {
          Multiset<Rule> rulesBag = initRules(rulesPerSeverity, severity);
          rulesBag.add(rule, childRuleMeasure.getIntValue());
        }
      }

      Multiset<Rule> rulesBag = rulesPerSeverity.get(severity);
      if (rulesBag != null) {
        for (Multiset.Entry<Rule> entry : rulesBag.entrySet()) {
          RuleMeasure measure =
              RuleMeasure.createForRule(metric, entry.getElement(), (double) entry.getCount());
          measure.setSeverity(severity);
          context.saveMeasure(measure);
        }
      }
    }
  }
 private void computeTotalViolations(DecoratorContext context) {
   if (context.getMeasure(CoreMetrics.VIOLATIONS) == null) {
     Collection<Measure> childrenViolations = context.getChildrenMeasures(CoreMetrics.VIOLATIONS);
     Double sum = MeasureUtils.sum(true, childrenViolations);
     context.saveMeasure(CoreMetrics.VIOLATIONS, sum + context.getViolations().size());
   }
 }
  private void computeViolationsPerSeverities(DecoratorContext context) {
    Multiset<RulePriority> severitiesBag = HashMultiset.create();
    for (Violation violation : context.getViolations()) {
      severitiesBag.add(violation.getSeverity());
    }

    for (RulePriority severity : RulePriority.values()) {
      Metric metric = SeverityUtils.severityToViolationMetric(severity);
      if (context.getMeasure(metric) == null) {
        Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.metric(metric));
        int sum = MeasureUtils.sum(true, children).intValue() + severitiesBag.count(severity);
        context.saveMeasure(metric, (double) sum);
      }
    }
  }
示例#4
0
  private double computeTechnicalDebt(
      Metric metric,
      DecoratorContext context,
      TechnicalDebtRequirement requirement,
      Collection<Issue> issues) {
    double value = 0.0;
    if (issues != null) {
      for (Issue issue : issues) {
        value += converter.toDays(((DefaultIssue) issue).technicalDebt());
      }
    }

    for (Measure measure :
        context.getChildrenMeasures(
            MeasuresFilters.characteristic(metric, requirement.toCharacteristic()))) {
      if (measure.getCharacteristic() != null
          && measure.getCharacteristic().equals(requirement.toCharacteristic())
          && measure.getValue() != null) {
        value += measure.getValue();
      }
    }
    return value;
  }
 private int sumChildren(DecoratorContext context, Metric metric) {
   return MeasureUtils.sum(true, context.getChildrenMeasures(metric)).intValue();
 }