/** * Conditions for best value measure: * <ul> * <li>component is a production file or test file</li> * <li>metric is optimized for best value</li> * </ul> */ private List<MeasureDto> computeBestValues(List<MeasureDto> measures) { if (!isEligibleForBestValue().test(component)) { return emptyList(); } requireNonNull(metrics); requireNonNull(analyses); Table<Integer, String, MeasureDto> measuresByMetricIdAndAnalysisUuid = HashBasedTable.create(metrics.size(), analyses.size()); measures.forEach(measure -> measuresByMetricIdAndAnalysisUuid.put(measure.getMetricId(), measure.getAnalysisUuid(), measure)); List<MeasureDto> bestValues = new ArrayList<>(); metrics.stream() .filter(isOptimizedForBestValue()) .forEach(metric -> analyses.stream() .filter(analysis -> !measuresByMetricIdAndAnalysisUuid.contains(metric.getId(), analysis.getUuid())) .map(analysis -> toBestValue(metric, analysis)) .forEach(bestValues::add)); return bestValues; }
private UnaryOperator<SearchHistoryResponse.Builder> addMeasures() { Map<Integer, MetricDto> metricsById = result.getMetrics().stream().collect(MoreCollectors.uniqueIndex(MetricDto::getId)); Map<String, SnapshotDto> analysesByUuid = result.getAnalyses().stream().collect(MoreCollectors.uniqueIndex(SnapshotDto::getUuid)); Table<MetricDto, SnapshotDto, MeasureDto> measuresByMetricByAnalysis = HashBasedTable.create(result.getMetrics().size(), result.getAnalyses().size()); result.getMeasures().forEach(m -> measuresByMetricByAnalysis.put(metricsById.get(m.getMetricId()), analysesByUuid.get(m.getAnalysisUuid()), m)); return response -> { result.getMetrics().stream() .map(clearMetric()) .map(addMetric()) .map(metric -> addValues(measuresByMetricByAnalysis.row(metric)).apply(metric)) .forEach(metric -> response.addMeasures(measure)); return response; }; }
/** * Conditions for best value measure: * <ul> * <li>component is a production file or test file</li> * <li>metric is optimized for best value</li> * </ul> */ private List<MeasureDto> computeBestValues(List<MeasureDto> measures) { if (!isEligibleForBestValue().test(component)) { return emptyList(); } requireNonNull(metrics); requireNonNull(analyses); Table<Integer, String, MeasureDto> measuresByMetricIdAndAnalysisUuid = HashBasedTable.create(metrics.size(), analyses.size()); measures.forEach(measure -> measuresByMetricIdAndAnalysisUuid.put(measure.getMetricId(), measure.getAnalysisUuid(), measure)); List<MeasureDto> bestValues = new ArrayList<>(); metrics.stream() .filter(isOptimizedForBestValue()) .forEach(metric -> analyses.stream() .filter(analysis -> !measuresByMetricIdAndAnalysisUuid.contains(metric.getId(), analysis.getUuid())) .map(analysis -> toBestValue(metric, analysis)) .forEach(bestValues::add)); return bestValues; }
private UnaryOperator<SearchHistoryResponse.Builder> addMeasures() { Map<Integer, MetricDto> metricsById = result.getMetrics().stream().collect(MoreCollectors.uniqueIndex(MetricDto::getId)); Map<String, SnapshotDto> analysesByUuid = result.getAnalyses().stream().collect(MoreCollectors.uniqueIndex(SnapshotDto::getUuid)); Table<MetricDto, SnapshotDto, MeasureDto> measuresByMetricByAnalysis = HashBasedTable.create(result.getMetrics().size(), result.getAnalyses().size()); result.getMeasures().forEach(m -> measuresByMetricByAnalysis.put(metricsById.get(m.getMetricId()), analysesByUuid.get(m.getAnalysisUuid()), m)); return response -> { result.getMetrics().stream() .map(clearMetric()) .map(addMetric()) .map(metric -> addValues(measuresByMetricByAnalysis.row(metric)).apply(metric)) .forEach(metric -> response.addMeasures(measure)); return response; }; }