From a2a92b33b659e5a386cdc64d9d0c1bcbab7eae9b Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Thu, 1 Oct 2015 17:25:26 +0200 Subject: [PATCH] Add selectComponentsByQualifiers --- .../org/sonar/db/component/ComponentDao.java | 13 ++++++++++ .../sonar/db/component/ComponentMapper.java | 3 +++ .../sonar/db/component/ComponentMapper.xml | 11 ++++++++ .../sonar/db/component/ComponentDaoTest.java | 26 +++++++++++++++++-- 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java index 4f4a9cc49ca..4b8f62b0e06 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java +++ b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java @@ -25,8 +25,10 @@ import com.google.common.base.Optional; import com.google.common.collect.Lists; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.apache.ibatis.session.RowBounds; @@ -37,6 +39,7 @@ import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; import org.sonar.db.RowNotFoundException; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Maps.newHashMapWithExpectedSize; import static org.sonar.db.DatabaseUtils.executeLargeInputs; @@ -251,6 +254,16 @@ public class ComponentDao implements Dao { return mapper(dbSession).selectByProjectUuid(projectUuid); } + /** + * Retrieve enabled components keys with given qualifiers + * + * Used by Views plugin + */ + public Set selectComponentsByQualifiers(DbSession dbSession, Set qualifiers) { + checkArgument(!qualifiers.isEmpty(), "Qualifiers cannot be empty"); + return new HashSet<>(mapper(dbSession).selectComponentsByQualifiers(qualifiers)); + } + private static void addPartialQueryParameterIfNotNull(Map parameters, @Nullable String keyOrNameFilter) { if (keyOrNameFilter != null) { parameters.put("query", "%" + keyOrNameFilter.toUpperCase() + "%"); diff --git a/sonar-db/src/main/java/org/sonar/db/component/ComponentMapper.java b/sonar-db/src/main/java/org/sonar/db/component/ComponentMapper.java index 774c14a378d..42a59729461 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/ComponentMapper.java +++ b/sonar-db/src/main/java/org/sonar/db/component/ComponentMapper.java @@ -57,6 +57,8 @@ public interface ComponentMapper { List selectExistingUuids(@Param("uuids") Collection uuids); + List selectComponentsByQualifiers(@Param("qualifiers") Collection qualifiers); + List selectByQuery(ComponentQuery query, RowBounds rowBounds); int countByQuery(ComponentQuery query); @@ -131,4 +133,5 @@ public interface ComponentMapper { void update(ComponentDto componentDto); void delete(long componentId); + } diff --git a/sonar-db/src/main/resources/org/sonar/db/component/ComponentMapper.xml b/sonar-db/src/main/resources/org/sonar/db/component/ComponentMapper.xml index 9d295b93383..a47afccf978 100644 --- a/sonar-db/src/main/resources/org/sonar/db/component/ComponentMapper.xml +++ b/sonar-db/src/main/resources/org/sonar/db/component/ComponentMapper.xml @@ -229,6 +229,17 @@ + +