/** * Return true if all measures have numeric value * * @param measures the measures * @return true if all measures numeric values */ public static boolean haveValues(Measure... measures) { if (measures == null || measures.length == 0) { return false; } for (Measure measure : measures) { if (!hasValue(measure)) { return false; } } return true; }
public static Long getValueAsLong(Measure measure, Long defaultValue) { if (MeasureUtils.hasValue(measure)) { return measure.getValue().longValue(); } return defaultValue; }
/** * Get the value of a measure, or alternatively a default value * * @param measure the measure * @param defaultValue the default value * @return <code>defaultValue</code> if measure is null or has no values. */ public static Double getValue(Measure measure, @Nullable Double defaultValue) { if (MeasureUtils.hasValue(measure)) { return measure.getValue(); } return defaultValue; }
private boolean shouldDecorateResource(FormulaData data, FormulaContext context) { return !MeasureUtils.hasValue(data.getMeasure(context.getTargetMetric())); } }
private void saveDensity(DecoratorContext context, int ncloc) { Measure debt = context.getMeasure(IssuesDensityMetrics.WEIGHTED_ISSUES); Integer debtValue = 0; if (MeasureUtils.hasValue(debt)) { debtValue = debt.getValue().intValue(); } double density = calculate(debtValue, ncloc); context.saveMeasure(IssuesDensityMetrics.ISSUES_DENSITY, density); }
private Double sumChildren(DecoratorContext jobContext, Metric metric) { Collection<Measure> childrenMeasures = jobContext.getChildrenMeasures(metric); if (childrenMeasures != null && !childrenMeasures.isEmpty()) { Double sum = 0.0; boolean hasChildrenMeasures = false; for (Measure measure : childrenMeasures) { if (MeasureUtils.hasValue(measure)) { sum += measure.getValue(); hasChildrenMeasures = true; } } if (hasChildrenMeasures) { jobContext.saveMeasure(metric, sum); return sum; } } return null; }
private void saveDensity(DecoratorContext context, int ncloc) { Measure debt = context.getMeasure(CoreMetrics.WEIGHTED_VIOLATIONS); Integer debtValue = 0; if (MeasureUtils.hasValue(debt)) { debtValue = debt.getValue().intValue(); } double density = calculate(debtValue, ncloc); context.saveMeasure(ViolationDensityMetrics.VIOLATION_DENSITY, density); }
private void decorateDensity(DecoratorContext context) { Measure ncloc = context.getMeasure(CoreMetrics.NCLOC); if (MeasureUtils.hasValue(ncloc) && ncloc.getValue() > 0.0) { saveDensity(context, ncloc.getValue().intValue()); } }
private void decorateDensity(DecoratorContext context) { Measure ncloc = context.getMeasure(CoreMetrics.NCLOC); if (MeasureUtils.hasValue(ncloc) && ncloc.getValue() > 0.0) { saveDensity(context, ncloc.getValue().intValue()); } }
@Override public void decorate(Resource resource, DecoratorContext context) { double value = 0.0; Multiset<String> distribution = LinkedHashMultiset.create(); for (String severity : Severity.ALL) { Measure measure = context.getMeasure(severityToIssueMetric(severity)); if (measure != null && MeasureUtils.hasValue(measure)) { distribution.add(severity, measure.getIntValue()); double add = weightsBySeverity.get(severity) * measure.getIntValue(); value += add; } } String distributionFormatted = KeyValueFormat.format(distribution); // SONAR-4987 We should store an empty string for the distribution value Measure measure = new Measure(IssuesDensityMetrics.WEIGHTED_ISSUES, value, Strings.emptyToNull(distributionFormatted)); context.saveMeasure(measure); }
private void savePublicApiDensity(DecoratorContext context) { if (context.getMeasure(CoreMetrics.PUBLIC_DOCUMENTED_API_DENSITY) != null) { return; } Measure publicApi = context.getMeasure(CoreMetrics.PUBLIC_API); Measure publicUndocApi = context.getMeasure(CoreMetrics.PUBLIC_UNDOCUMENTED_API); if (MeasureUtils.hasValue(publicApi) && MeasureUtils.hasValue(publicUndocApi) && publicApi.getValue() > 0) { double documentedAPI = publicApi.getValue() - publicUndocApi.getValue(); Double value = 100.0 * (documentedAPI / publicApi.getValue()); context.saveMeasure(new Measure(CoreMetrics.PUBLIC_DOCUMENTED_API_DENSITY, value)); } }
@Override public void decorate(Resource resource, DecoratorContext context) { if (MeasureUtils.hasValue(context.getMeasure(CoreMetrics.FILES))) { return; } if (Resource.QUALIFIER_CLASS.equals(resource.getQualifier()) || Resource.QUALIFIER_FILE.equals(resource.getQualifier())) { context.saveMeasure(CoreMetrics.FILES, 1.0); } else { Collection<Measure> childrenMeasures = context.getChildrenMeasures(CoreMetrics.FILES); Double sum = MeasureUtils.sum(false, childrenMeasures); if (sum != null) { context.saveMeasure(CoreMetrics.FILES, sum); } } } }
private void saveCommentsDensity(DecoratorContext context) { if (context.getMeasure(CoreMetrics.COMMENT_LINES_DENSITY) != null) { return; } Measure ncloc = context.getMeasure(CoreMetrics.NCLOC); Measure comments = context.getMeasure(CoreMetrics.COMMENT_LINES); if (MeasureUtils.hasValue(ncloc) && MeasureUtils.hasValue(comments) && (comments.getValue() + ncloc.getValue()) > 0) { double val = 100.0 * (comments.getValue() / (comments.getValue() + ncloc.getValue())); context.saveMeasure(new Measure(CoreMetrics.COMMENT_LINES_DENSITY, val)); } }
@Override public Measure calculate(FormulaData data, FormulaContext context) { double sum=0.0; int count=0; boolean hasValue=false; Collection<Measure> measures = data.getChildrenMeasures(context.getTargetMetric()); for (Measure measure : measures) { if (MeasureUtils.hasValue(measure)) { sum+=measure.getValue(); count++; hasValue=true; } } if (!hasValue && !forceZeroIfMissingData) { return null; } return new Measure(context.getTargetMetric(), count==0 ? 0.0 : sum/count); } }
/** * {@inheritDoc} */ @Override public void decorate(Resource resource, DecoratorContext context) { if (!shouldDecorateResource(context)) { return; } Measure dividend = context.getMeasure(getDividendMetric()); Measure divisor = context.getMeasure(getDivisorMetric()); if (MeasureUtils.hasValue(dividend) && MeasureUtils.hasValue(divisor) && divisor.getValue() > 0.0) { context.saveMeasure(new Measure(getQuotientMetric(), compute(dividend, divisor, getQuotientMetric().isPercentageType()))); } }
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); } } }
/** * {@inheritDoc} */ @Override public void decorate(Resource resource, DecoratorContext context) { if (MeasureUtils.hasValue(context.getMeasure(CoreMetrics.DIRECTORIES))) { return; } if (Resource.QUALIFIER_DIRECTORY.equals(resource.getQualifier())) { context.saveMeasure(CoreMetrics.DIRECTORIES, 1.0); } else if (ResourceUtils.isSet(resource) || ResourceUtils.isView(resource) || ResourceUtils.isSubview(resource)) { Collection<Measure> childrenMeasures = context.getChildrenMeasures(CoreMetrics.DIRECTORIES); Double sum = MeasureUtils.sum(false, childrenMeasures); if (sum != null) { context.saveMeasure(CoreMetrics.DIRECTORIES, sum); } } } }
/** * {@inheritDoc} */ @Override public final void decorate(Resource resource, DecoratorContext context) { if (!shouldDecorateResource(context)) { return; } Measure tangles = context.getMeasure(tanglesMetric); Measure totalweight = context.getMeasure(edgesWeightMetric); if (MeasureUtils.hasValue(totalweight)) { context.saveMeasure(new Measure(tangleIndexMetric, compute(MeasureUtils.getValue(tangles, 0.0), totalweight.getValue()))); } }