/** {@inheritDoc} */ public void decorate(Resource resource, DecoratorContext context) { if (!shouldDecorateResource(resource, context)) { return; } Double functions = MeasureUtils.getValue(context.getMeasure(CoreMetrics.FUNCTIONS), null); Double complexity = MeasureUtils.getValue(context.getMeasure(CoreMetrics.COMPLEXITY), null); if (complexity != null && functions != null && functions > 0.0) { context.saveMeasure(CoreMetrics.FUNCTION_COMPLEXITY, complexity / functions); } }
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()); } }
/** {@inheritDoc} */ 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 decorateResource(DecoratorContext context) { Metric.Level globalLevel = Metric.Level.OK; List<String> labels = Lists.newArrayList(); for (final Alert alert : profile.getAlerts()) { Measure measure = context.getMeasure(alert.getMetric()); if (measure != null) { Metric.Level level = AlertUtils.getLevel(alert, measure); measure.setAlertStatus(level); String text = getText(alert, level); if (!StringUtils.isBlank(text)) { measure.setAlertText(text); labels.add(text); } context.saveMeasure(measure); if (Metric.Level.WARN == level && globalLevel != Metric.Level.ERROR) { globalLevel = Metric.Level.WARN; } else if (Metric.Level.ERROR == level) { globalLevel = Metric.Level.ERROR; } } } Measure globalMeasure = new Measure(CoreMetrics.ALERT_STATUS, globalLevel); globalMeasure.setAlertStatus(globalLevel); globalMeasure.setAlertText(StringUtils.join(labels, ", ")); context.saveMeasure(globalMeasure); }
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); } } }
public void decorate(Resource resource, DecoratorContext context) { if (!shouldDecorateResource(resource)) { return; } Measure currentStatus = context.getMeasure(CoreMetrics.ALERT_STATUS); if (currentStatus == null) { return; } TimeMachineQuery query = new TimeMachineQuery(resource) .setOnlyLastAnalysis(true) .setMetrics(CoreMetrics.ALERT_STATUS); List<Measure> measures = timeMachine.getMeasures(query); Measure pastStatus = measures != null && measures.size() == 1 ? measures.get(0) : null; checkQualityGateStatusChange(resource, context, currentStatus, pastStatus); }
private boolean shouldSaveMeasure(DecoratorContext context) { return context.getMeasure(CoreMetrics.TECHNICAL_DEBT) == null; }
private boolean shouldDecorateResource(Resource resource, DecoratorContext context) { return !MeasureUtils.hasValue(context.getMeasure(CoreMetrics.FUNCTION_COMPLEXITY)); }
protected boolean shouldDecorateResource(DecoratorContext context) { return context.getMeasure(getQuotientMetric()) == null; }