if (query.returnsEmpty()) { return emptyList(); if (query.isOnComponents()) { return executeLargeInputs( query.getComponentUuids(), componentUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfComponentUuids(query, componentUuids); return mapper(dbSession).selectByQueryOnComponents(pageQuery); }); if (query.isOnProjects()) { return executeLargeInputs( query.getProjectUuids(), projectUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfProjectUuids(query, projectUuids); return mapper(dbSession).selectByQueryOnProjects(pageQuery); });
@CheckForNull public String getComponentUuid() { return isOnSingleComponent() ? componentUuids.iterator().next() : null; }
public MeasureQuery build() { return new MeasureQuery(this); } }
@Test public void create_query_from_project_and_components() { MeasureQuery query = MeasureQuery.builder().setComponentUuids("PROJECT_1", asList("FILE_1", "FILE_2")).build(); assertThat(query.getProjectUuids()).containsOnly("PROJECT_1"); assertThat(query.getProjectUuid()).isEqualTo("PROJECT_1"); assertThat(query.getComponentUuids()).containsOnly("FILE_1", "FILE_2"); assertThat(query.isOnProjects()).isFalse(); assertThat(query.isOnComponents()).isTrue(); assertThat(query.isOnSingleComponent()).isFalse(); }
@Test public void create_query_from_single_component_uuid() { MeasureQuery query = MeasureQuery.builder().setComponentUuid("FILE_1").build(); assertThat(query.getComponentUuids()).containsOnly("FILE_1"); assertThat(query.getComponentUuid()).isEqualTo("FILE_1"); assertThat(query.isOnProjects()).isFalse(); assertThat(query.isOnComponents()).isFalse(); assertThat(query.isOnSingleComponent()).isTrue(); }
@Test public void create_query_from_projects() { MeasureQuery query = MeasureQuery.builder().setProjectUuids(asList("PROJECT_1", "PROJECT_2")).build(); assertThat(query.getProjectUuids()).containsOnly("PROJECT_1", "PROJECT_2"); assertThat(query.isOnProjects()).isTrue(); assertThat(query.isOnComponents()).isFalse(); assertThat(query.isOnSingleComponent()).isFalse(); }
@Test public void return_empty_when_components_are_empty() { assertThat(MeasureQuery.builder() .setComponentUuids("PROJECT", emptyList()) .build().returnsEmpty()).isTrue(); }
@CheckForNull public String getProjectUuid() { return isOnComponents() ? projectUuids.iterator().next() : null; }
@Test public void return_empty_when_projects_are_empty() { assertThat(MeasureQuery.builder() .setProjectUuids(emptyList()) .build().returnsEmpty()).isTrue(); }
@CheckForNull public String getProjectUuid() { return isOnComponents() ? projectUuids.iterator().next() : null; }
public void selectByQuery(DbSession dbSession, MeasureQuery query, ResultHandler resultHandler) { if (query.returnsEmpty()) { return; } if (query.isOnComponents()) { executeLargeInputsWithoutOutput( query.getComponentUuids(), componentUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfComponentUuids(query, componentUuids); mapper(dbSession).selectByQueryOnComponents(pageQuery, resultHandler); return null; }); } if (query.isOnProjects()) { executeLargeInputsWithoutOutput( query.getProjectUuids(), projectUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfProjectUuids(query, projectUuids); mapper(dbSession).selectByQueryOnProjects(pageQuery, resultHandler); return null; }); } mapper(dbSession).selectByQueryOnSingleComponent(query, resultHandler); }
@Test public void return_empty_when_metrics_are_empty() { assertThat(MeasureQuery.builder() .setProjectUuids(asList("PROJECT_1", "PROJECT_2")) .setMetricKeys(emptyList()) .build().returnsEmpty()).isTrue(); assertThat(MeasureQuery.builder() .setProjectUuids(asList("PROJECT_1", "PROJECT_2")) .setMetricIds(emptyList()) .build().returnsEmpty()).isTrue(); }
static MeasureQuery copyWithSubsetOfProjectUuids(MeasureQuery query, Collection<String> projectUuids) { return new MeasureQuery(query.analysisUuid, projectUuids, query.componentUuids, query.metricIds, query.metricKeys); }
@CheckForNull public String getComponentUuid() { return isOnSingleComponent() ? componentUuids.iterator().next() : null; }
if (query.returnsEmpty()) { return emptyList(); if (query.isOnComponents()) { return executeLargeInputs( query.getComponentUuids(), componentUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfComponentUuids(query, componentUuids); return mapper(dbSession).selectByQueryOnComponents(pageQuery); }); if (query.isOnProjects()) { return executeLargeInputs( query.getProjectUuids(), projectUuids -> { MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfProjectUuids(query, projectUuids); return mapper(dbSession).selectByQueryOnProjects(pageQuery); });
static MeasureQuery copyWithSubsetOfComponentUuids(MeasureQuery query, Collection<String> componentUuids) { return new MeasureQuery(query.analysisUuid, query.projectUuids, componentUuids, query.metricIds, query.metricKeys); }
public MeasureQuery build() { return new MeasureQuery(this); } }
static MeasureQuery copyWithSubsetOfProjectUuids(MeasureQuery query, Collection<String> projectUuids) { return new MeasureQuery(query.analysisUuid, projectUuids, query.componentUuids, query.metricIds, query.metricKeys, query.personId); }
static MeasureQuery copyWithSubsetOfComponentUuids(MeasureQuery query, Collection<String> componentUuids) { return new MeasureQuery(query.analysisUuid, query.projectUuids, componentUuids, query.metricIds, query.metricKeys, query.personId); }