use of org.sonar.db.measure.MeasureDto in project sonarqube by SonarSource.
the class ComponentAction method searchMeasures.
private List<MeasureDto> searchMeasures(DbSession dbSession, ComponentDto component, @Nullable SnapshotDto analysis, List<MetricDto> metrics, @Nullable Long developerId) {
if (analysis == null) {
return emptyList();
}
List<Integer> metricIds = Lists.transform(metrics, MetricDto::getId);
MeasureQuery query = MeasureQuery.builder().setPersonId(developerId).setMetricIds(metricIds).setComponentUuid(component.uuid()).build();
List<MeasureDto> measures = dbClient.measureDao().selectByQuery(dbSession, query);
addBestValuesToMeasures(measures, component, metrics);
return measures;
}
use of org.sonar.db.measure.MeasureDto in project sonarqube by SonarSource.
the class ComponentAction method buildResponse.
private static ComponentWsResponse buildResponse(ComponentWsRequest request, ComponentDto component, Optional<ComponentDto> refComponent, List<MeasureDto> measures, List<MetricDto> metrics, List<WsMeasures.Period> periods) {
ComponentWsResponse.Builder response = ComponentWsResponse.newBuilder();
Map<Integer, MetricDto> metricsById = Maps.uniqueIndex(metrics, MetricDto::getId);
Map<MetricDto, MeasureDto> measuresByMetric = new HashMap<>();
for (MeasureDto measure : measures) {
MetricDto metric = metricsById.get(measure.getMetricId());
measuresByMetric.put(metric, measure);
}
if (refComponent.isPresent()) {
response.setComponent(componentDtoToWsComponent(component, measuresByMetric, singletonMap(refComponent.get().uuid(), refComponent.get())));
} else {
response.setComponent(componentDtoToWsComponent(component, measuresByMetric, emptyMap()));
}
List<String> additionalFields = request.getAdditionalFields();
if (additionalFields != null) {
if (additionalFields.contains(ADDITIONAL_METRICS)) {
for (MetricDto metric : metrics) {
response.getMetricsBuilder().addMetrics(metricDtoToWsMetric(metric));
}
}
if (additionalFields.contains(ADDITIONAL_PERIODS)) {
response.getPeriodsBuilder().addAllPeriods(periods);
}
}
return response.build();
}
Aggregations