/** * 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; }
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)) { numMethods += m.getIntValue(); for (Measure m : context.getChildrenMeasures(OpenEdgeMetrics.OE_COMPLEXITY_KEY)) { complexity += m.getIntValue();
@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; } }