/** * Tests if a measure has a value * * @param measure the measure * @return whether the measure has a value */ public static boolean hasValue(Measure measure) { return measure != null && measure.getValue() != null; }
public static Long getValueAsLong(Measure measure, Long defaultValue) { if (MeasureUtils.hasValue(measure)) { return measure.getValue().longValue(); } return defaultValue; }
private long getMeasureValue(DecoratorContext context, Metric metric) { Measure measure = context.getMeasure(metric); if (measure != null) { return measure.getValue().longValue(); } return 0L; }
/** * 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 Double getNbLinesFromLocOrNcloc(DecoratorContext context) { Measure nbLoc = context.getMeasure(CoreMetrics.LINES); if (nbLoc != null) { // TODO test this branch return nbLoc.getValue(); } Measure nbNcloc = context.getMeasure(CoreMetrics.NCLOC); if (nbNcloc != null) { Measure nbComments = context.getMeasure(CoreMetrics.COMMENT_LINES); Double nbLines = nbNcloc.getValue(); return nbComments != null ? nbLines + nbComments.getValue() : nbLines; } return null; }
private static void validateMeasure(Measure measure, String componentKey) { if (measure.getValue() == null && measure.getData() == null) { throw new IllegalArgumentException(String.format("Measure on metric '%s' and component '%s' has no value, but it's not allowed", measure.getMetricKey(), componentKey)); } }
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)); } }
boolean updateVariation(Measure measure, Object[] pastMeasure, int index) { if (pastMeasure != null && PastMeasuresLoader.hasValue(pastMeasure) && measure.getValue() != null) { double variation = measure.getValue() - PastMeasuresLoader.getValue(pastMeasure); measure.setVariation(index, variation); return true; } return false; }
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)); } }
private static boolean isMeasureNotEmpty(Measure measure) { boolean isNotEmpty = false; for (int i = 1; i <= 5; i++) { isNotEmpty = isNotEmpty || measure.getVariation(i) != null; } return measure.getValue() != null || measure.getData() != null || isNotEmpty; }
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 static Comparable getMeasureValueForStringOrBoolean(Metric metric, Measure measure) { if (isAString(metric)) { return measure.getData(); } if (isABoolean(metric)) { return measure.getValue().intValue(); } throw new NotImplementedException(metric.getType().toString()); }
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); }
@Override public void decorate(Resource resource, DecoratorContext context) { Measure nbDuplicatedLines = context.getMeasure(CoreMetrics.DUPLICATED_LINES); if (nbDuplicatedLines == null) { return; } Double divisor = getNbLinesFromLocOrNcloc(context); if (divisor != null && divisor > 0.0) { context.saveMeasure(CoreMetrics.DUPLICATED_LINES_DENSITY, calculate(nbDuplicatedLines.getValue(), divisor)); } }
private void saveZeroValueForResource(org.sonar.api.resources.File resource, SensorContext context) { // use non comment lines of code for coverage calculation double ncloc = context.getMeasure(resource, CoreMetrics.NCLOC).getValue(); context.saveMeasure(resource, getZeroCoverageLineHitsDataMetric(resource, context)); context.saveMeasure(resource, CoreMetrics.LINES_TO_COVER, ncloc); context.saveMeasure(resource, CoreMetrics.UNCOVERED_LINES, ncloc); }
private void saveComplexityDistribution(SensorContext sensorContext, WebSourceCode sourceCode) { if (sourceCode.getMeasure(CoreMetrics.COMPLEXITY) != null) { RangeDistributionBuilder complexityFileDistribution = new RangeDistributionBuilder(CoreMetrics.FILE_COMPLEXITY_DISTRIBUTION, FILES_DISTRIB_BOTTOM_LIMITS); complexityFileDistribution.add(sourceCode.getMeasure(CoreMetrics.COMPLEXITY).getValue()); sensorContext.saveMeasure(sourceCode.getResource(), complexityFileDistribution.build().setPersistenceMode(PersistenceMode.MEMORY)); } }
/** * {@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()))); } }