/** * Saves the aggregation result to the {@link MeasureComputerContext}. */ public void addMeasureToContext() { switch (this.valueType) { case INT: this.context.addMeasure(this.metricKey, this.value.intValue()); break; case WORK_DUR: this.context.addMeasure(this.metricKey, this.value.longValue()); break; default: throw new UnsupportedOperationException(); } }
/** * Retrieves an {@link Aggregator} able to aggregate {@link Measure}s. * * @param context {@link MeasureComputerContext} to which aggregated result has to be saved. * @param metricKey key of the {@link Metric} for which {@link Measure}s are aggregated. * @return {@link Aggregator} instance. */ protected Aggregator aggregator(final MeasureComputerContext context, final String metricKey) { final Aggregator aggregator = new Aggregator(context, metricKey); final Iterable<Measure> measures = context.getChildrenMeasures(metricKey); LOGGER.debug("current metric: '{}'", metricKey); if (measures != null) { for (final Measure measure : measures) { aggregator.aggregate(measure); } } return aggregator; }
@Override public void compute(MeasureComputerContext context) { LOG.debug("Decorating " + context.getComponent().getKey()); int numMethods = 0; int complexity = 0; if ((context.getComponent().getType() == Component.Type.DIRECTORY) || (context.getComponent().getType() == Component.Type.PROJECT)) { for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.CLASSES_KEY)) { numClasses += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.PROCEDURES_KEY)) { numWindows += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.INCLUDES_KEY)) { numIncludes += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.WINDOWS_KEY)) { numProcedures += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.PACKAGES_KEY)) { numPackages += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.INTERNAL_PROCEDURES_KEY)) { numIntProcs+= m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.INTERNAL_FUNCTIONS_KEY)) { numIntFuncs += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.METHODS_KEY)) {
@Override public void compute(MeasureComputerContext context) { LOG.debug("Decorating " + context.getComponent().getKey()); int numTables = 0, numSeq = 0, numIndex = 0, numFields = 0, numTriggers = 0; if ((context.getComponent().getType() == Component.Type.DIRECTORY) || (context.getComponent().getType() == Component.Type.PROJECT)) { for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.NUM_TABLES_KEY)) { numTables += m.getIntValue(); } for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.NUM_FIELDS_KEY)) { numFields += m.getIntValue(); } for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.NUM_INDEXES_KEY)) { numIndex += m.getIntValue(); } for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.NUM_SEQUENCES_KEY)) { numSeq += m.getIntValue(); } for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.NUM_TRIGGERS_KEY)) { numTriggers += m.getIntValue(); } context.addMeasure(OpenEdgeMetrics.NUM_TABLES_KEY, numTables); context.addMeasure(OpenEdgeMetrics.NUM_FIELDS_KEY, numFields); context.addMeasure(OpenEdgeMetrics.NUM_INDEXES_KEY, numIndex); context.addMeasure(OpenEdgeMetrics.NUM_SEQUENCES_KEY, numSeq); context.addMeasure(OpenEdgeMetrics.NUM_TRIGGERS_KEY, numTriggers); } } }
@Override public void compute(MeasureComputerContext context) { // measure is already defined on files by {@link SetSizeOnFilesSensor} // in scanner stack if (context.getComponent().getType() != Component.Type.FILE) { int sum = 0; int count = 0; for (Measure child : context.getChildrenMeasures(FILENAME_SIZE.key())) { sum += child.getIntValue(); count++; } int average = count == 0 ? 0 : sum / count; context.addMeasure(FILENAME_SIZE.key(), average); } } }
@Override protected Aggregator aggregator(final MeasureComputerContext context, final String metricKey) { final Aggregator aggregator = new Aggregator(context, metricKey); for (final String inputMetricKey : inputMetricsKeys) { final Iterable<Measure> measures = context.getChildrenMeasures(inputMetricKey); if (measures != null) { for (final Measure measure : measures) { aggregator.aggregate(measure); } } } return aggregator; } }
@Override public void compute(MeasureComputerContext context) { Measure size = context.getMeasure(FILENAME_SIZE.key()); if (size != null) { // rating values are currently implemented as integers in API int rating = RATING_A; if (size.getIntValue() > THRESHOLD) { rating = RATING_B; } context.addMeasure(FILENAME_SIZE_RATING.key(), rating); } } }
/** * Computes measure by summing all children measures. * * @param context {@link MeasureComputerContext} to which the measure has to be saved to. */ @Override public void compute(final MeasureComputerContext context) { final Component component = context.getComponent(); if (component.getType() != Type.FILE) { compute(component, context); } }
@Override public void compute(MeasureComputer.MeasureComputerContext context) { org.sonar.api.ce.measure.Measure ncloc = context.getMeasure(NCLOC_KEY); org.sonar.api.ce.measure.Measure comment = context.getMeasure(COMMENT_LINES_KEY); if (ncloc != null && comment != null) { context.addMeasure(NEW_METRIC_KEY, ncloc.getIntValue() + comment.getIntValue()); } } };
@Override public void compute(MeasureComputerContext context) { org.sonar.api.ce.measure.Measure ncloc = context.getMeasure(NCLOC_KEY); org.sonar.api.ce.measure.Measure comment = context.getMeasure(COMMENT_LINES_KEY); if (ncloc != null && comment != null) { context.addMeasure(NEW_METRIC_KEY, ncloc.getIntValue() + comment.getIntValue()); } } },