diff options
author | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2015-11-13 15:06:10 +0100 |
---|---|---|
committer | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2015-11-17 13:41:04 +0100 |
commit | 0444203efdb03f630a7912bc62bab892cbd9bbdc (patch) | |
tree | e2caa558a23b2bf62d87f051af459ea54421df91 | |
parent | 40cf347e9aa2ded35a8798b8aec0abbf2e993183 (diff) | |
download | sonarqube-0444203efdb03f630a7912bc62bab892cbd9bbdc.tar.gz sonarqube-0444203efdb03f630a7912bc62bab892cbd9bbdc.zip |
SONAR-6947 api/qualityprofiles/search use SearchWsRequest
17 files changed, 171 insertions, 49 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java index beedca2c6cf..6e55813f892 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java @@ -29,8 +29,10 @@ import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService.NewAction; import org.sonar.server.qualityprofile.QProfile; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; +import org.sonarqube.ws.client.qualityprofile.SearchWsRequest; import static com.google.common.collect.Maps.uniqueIndex; import static java.lang.String.format; @@ -86,16 +88,28 @@ public class SearchAction implements QProfileWsAction { @Override public void handle(Request request, Response response) throws Exception { + SearchWsResponse searchWsResponse = doHandle(toSearchWsRequest(request)); + writeProtobuf(searchWsResponse, request, response); + } + + private SearchWsResponse doHandle(SearchWsRequest request) { SearchData data = dataLoader.load(request); - WsSearchResponse protobufResponse = buildResponse(data); - writeProtobuf(protobufResponse, request, response); + return buildResponse(data); + } + + private static SearchWsRequest toSearchWsRequest(Request request) { + return new SearchWsRequest() + .setProjectKey(request.param(PARAM_PROJECT_KEY)) + .setProfileName(request.param(PARAM_PROFILE_NAME)) + .setDefaults(request.paramAsBoolean(PARAM_DEFAULTS)) + .setLanguage(request.param(PARAM_LANGUAGE)); } - private WsSearchResponse buildResponse(SearchData data) { + private SearchWsResponse buildResponse(SearchData data) { List<QProfile> profiles = data.getProfiles(); Map<String, QProfile> profilesByKey = uniqueIndex(profiles, new QProfileToKey()); - WsSearchResponse.Builder response = WsSearchResponse.newBuilder(); + QualityProfiles.SearchWsResponse.Builder response = QualityProfiles.SearchWsResponse.newBuilder(); QualityProfile.Builder profileBuilder = QualityProfile.newBuilder(); for (QProfile profile : profiles) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchDataLoader.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchDataLoader.java index 0814a84e21e..d39178a3468 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchDataLoader.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchDataLoader.java @@ -28,7 +28,6 @@ import javax.annotation.Nullable; import org.apache.commons.lang.builder.CompareToBuilder; import org.sonar.api.resources.Language; import org.sonar.api.resources.Languages; -import org.sonar.api.server.ws.Request; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.component.ComponentDto; @@ -38,14 +37,11 @@ import org.sonar.server.qualityprofile.QProfile; import org.sonar.server.qualityprofile.QProfileFactory; import org.sonar.server.qualityprofile.QProfileLoader; import org.sonar.server.qualityprofile.QProfileLookup; +import org.sonarqube.ws.client.qualityprofile.SearchWsRequest; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.FluentIterable.from; import static java.lang.String.format; -import static org.sonar.server.qualityprofile.ws.SearchAction.PARAM_DEFAULTS; -import static org.sonar.server.qualityprofile.ws.SearchAction.PARAM_LANGUAGE; -import static org.sonar.server.qualityprofile.ws.SearchAction.PARAM_PROFILE_NAME; -import static org.sonar.server.qualityprofile.ws.SearchAction.PARAM_PROJECT_KEY; import static org.sonar.server.ws.WsUtils.checkRequest; public class SearchDataLoader { @@ -66,7 +62,7 @@ public class SearchDataLoader { this.componentFinder = componentFinder; } - SearchData load(Request request) { + SearchData load(SearchWsRequest request) { validateRequest(request); return new SearchData() @@ -75,7 +71,7 @@ public class SearchDataLoader { .setProjectCountByProfileKey(dbClient.qualityProfileDao().countProjectsByProfileKey()); } - private List<QProfile> findProfiles(Request request) { + private List<QProfile> findProfiles(SearchWsRequest request) { List<QProfile> profiles; if (askDefaultProfiles(request)) { profiles = findDefaultProfiles(request); @@ -93,8 +89,8 @@ public class SearchDataLoader { .toSortedList(QProfileComparator.INSTANCE); } - private List<QProfile> findAllProfiles(Request request) { - String language = request.param(PARAM_LANGUAGE); + private List<QProfile> findAllProfiles(SearchWsRequest request) { + String language = request.getLanguage(); List<QProfile> profiles = language != null ? profileLookup.profiles(language) : profileLookup.allProfiles(); @@ -104,9 +100,9 @@ public class SearchDataLoader { .toList(); } - private List<QProfile> findProjectProfiles(Request request) { - String moduleKey = request.param(PARAM_PROJECT_KEY); - String profileName = request.param(PARAM_PROFILE_NAME); + private List<QProfile> findProjectProfiles(SearchWsRequest request) { + String moduleKey = request.getProjectKey(); + String profileName = request.getProfileName(); List<QProfile> profiles = new ArrayList<>(); @@ -133,8 +129,8 @@ public class SearchDataLoader { } } - private List<QProfile> findDefaultProfiles(Request request) { - String profileName = request.param(PARAM_PROFILE_NAME); + private List<QProfile> findDefaultProfiles(SearchWsRequest request) { + String profileName = request.getProfileName(); List<QProfile> profiles = new ArrayList<>(); DbSession dbSession = dbClient.openSession(false); @@ -186,7 +182,7 @@ public class SearchDataLoader { return profileDtoToQProfile(profile); } - private static void validateRequest(Request request) { + private static void validateRequest(SearchWsRequest request) { boolean hasLanguage = hasLanguage(request); boolean isDefault = askDefaultProfiles(request); boolean hasComponentKey = hasComponentKey(request); @@ -197,20 +193,20 @@ public class SearchDataLoader { checkRequest(!isDefault || !hasComponentKey, "The default parameter cannot be provided at the same time than the component key"); } - private static boolean hasProfileName(Request request) { - return request.hasParam(PARAM_PROFILE_NAME); + private static boolean hasProfileName(SearchWsRequest request) { + return request.getProfileName() != null; } - private static boolean hasComponentKey(Request request) { - return request.hasParam(PARAM_PROJECT_KEY); + private static boolean hasComponentKey(SearchWsRequest request) { + return request.getProjectKey() != null; } - private static Boolean askDefaultProfiles(Request request) { - return request.paramAsBoolean(PARAM_DEFAULTS); + private static Boolean askDefaultProfiles(SearchWsRequest request) { + return request.getDefaults(); } - private static boolean hasLanguage(Request request) { - return request.hasParam(PARAM_LANGUAGE); + private static boolean hasLanguage(SearchWsRequest request) { + return request.getLanguage() != null; } private enum QProfileComparator implements Comparator<QProfile> { diff --git a/sonar-batch/src/main/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizer.java b/sonar-batch/src/main/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizer.java index b9ec4f0b503..f5cc9a540e6 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizer.java +++ b/sonar-batch/src/main/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizer.java @@ -30,7 +30,7 @@ import org.sonar.api.utils.log.Profiler; import org.sonar.batch.repository.QualityProfileLoader; import org.sonar.batch.rule.ActiveRulesLoader; import org.sonar.batch.rule.RulesLoader; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; public class NonAssociatedCacheSynchronizer { private static final Logger LOG = LoggerFactory.getLogger(NonAssociatedCacheSynchronizer.class); diff --git a/sonar-batch/src/main/java/org/sonar/batch/cache/ProjectCacheSynchronizer.java b/sonar-batch/src/main/java/org/sonar/batch/cache/ProjectCacheSynchronizer.java index 9ff8b6bb4ed..b29acea469a 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/cache/ProjectCacheSynchronizer.java +++ b/sonar-batch/src/main/java/org/sonar/batch/cache/ProjectCacheSynchronizer.java @@ -40,7 +40,7 @@ import org.sonar.batch.repository.ServerIssuesLoader; import org.sonar.batch.repository.user.UserRepositoryLoader; import org.sonar.batch.rule.ActiveRulesLoader; import org.sonar.batch.rule.RulesLoader; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; public class ProjectCacheSynchronizer { private static final Logger LOG = LoggerFactory.getLogger(ProjectCacheSynchronizer.class); diff --git a/sonar-batch/src/main/java/org/sonar/batch/repository/DefaultQualityProfileLoader.java b/sonar-batch/src/main/java/org/sonar/batch/repository/DefaultQualityProfileLoader.java index c8cc3f391cf..bd382543e52 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/repository/DefaultQualityProfileLoader.java +++ b/sonar-batch/src/main/java/org/sonar/batch/repository/DefaultQualityProfileLoader.java @@ -19,11 +19,11 @@ */ package org.sonar.batch.repository; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse; import org.sonar.batch.util.BatchUtils; import org.apache.commons.io.IOUtils; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import org.apache.commons.lang.mutable.MutableBoolean; import org.sonar.batch.cache.WSLoaderResult; import org.sonar.batch.cache.WSLoader; @@ -74,10 +74,10 @@ public class DefaultQualityProfileLoader implements QualityProfileLoader { fromCache.setValue(result.isFromCache()); } InputStream is = result.get(); - WsSearchResponse profiles = null; + SearchWsResponse profiles = null; try { - profiles = WsSearchResponse.parseFrom(is); + profiles = SearchWsResponse.parseFrom(is); } catch (IOException e) { throw new IllegalStateException("Failed to load quality profiles", e); } finally { diff --git a/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileLoader.java b/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileLoader.java index 266d24a3d7a..8ca2f6b5020 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileLoader.java +++ b/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileLoader.java @@ -20,7 +20,7 @@ package org.sonar.batch.repository; import org.apache.commons.lang.mutable.MutableBoolean; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import javax.annotation.Nullable; diff --git a/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileProvider.java b/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileProvider.java index b53635e7bd5..e3de47efb81 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileProvider.java +++ b/sonar-batch/src/main/java/org/sonar/batch/repository/QualityProfileProvider.java @@ -25,7 +25,7 @@ import org.sonar.api.utils.log.Profiler; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import org.apache.commons.lang.mutable.MutableBoolean; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import org.sonar.batch.analysis.DefaultAnalysisMode; import org.sonar.api.batch.bootstrap.ProjectKey; diff --git a/sonar-batch/src/main/java/org/sonar/batch/rule/ModuleQProfiles.java b/sonar-batch/src/main/java/org/sonar/batch/rule/ModuleQProfiles.java index 3f8d5cdd8ae..9321ddd357e 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/rule/ModuleQProfiles.java +++ b/sonar-batch/src/main/java/org/sonar/batch/rule/ModuleQProfiles.java @@ -21,7 +21,7 @@ package org.sonar.batch.rule; import org.sonar.api.utils.DateUtils; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import com.google.common.collect.ImmutableMap; import org.sonar.api.batch.BatchSide; diff --git a/sonar-batch/src/test/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizerTest.java b/sonar-batch/src/test/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizerTest.java index 6bbde374460..dd3ce4f5598 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/cache/NonAssociatedCacheSynchronizerTest.java @@ -29,7 +29,7 @@ import org.sonar.batch.repository.QualityProfileLoader; import org.sonar.batch.rule.ActiveRulesLoader; import org.sonar.batch.rule.LoadedActiveRule; import org.sonar.batch.rule.RulesLoader; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; diff --git a/sonar-batch/src/test/java/org/sonar/batch/cache/ProjectCacheSynchronizerTest.java b/sonar-batch/src/test/java/org/sonar/batch/cache/ProjectCacheSynchronizerTest.java index fabfe251eee..e2de472f795 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/cache/ProjectCacheSynchronizerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/cache/ProjectCacheSynchronizerTest.java @@ -46,7 +46,7 @@ import org.sonar.batch.rule.ActiveRulesLoader; import org.sonar.batch.rule.DefaultActiveRulesLoader; import org.sonar.batch.rule.LoadedActiveRule; import org.sonar.batch.rule.RulesLoader; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyBoolean; diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/BatchMediumTester.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/BatchMediumTester.java index c330d304a8e..8245af78c82 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/BatchMediumTester.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/BatchMediumTester.java @@ -28,7 +28,7 @@ import com.google.common.collect.Table; import com.google.common.collect.HashBasedTable; import org.sonar.batch.repository.ProjectRepositories; import org.sonar.batch.rule.ActiveRulesLoader; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import org.sonar.batch.repository.QualityProfileLoader; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.mutable.MutableBoolean; diff --git a/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultQualityProfileLoaderTest.java b/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultQualityProfileLoaderTest.java index f0215aa18e2..b3c2b79dcb3 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultQualityProfileLoaderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultQualityProfileLoaderTest.java @@ -19,10 +19,10 @@ */ package org.sonar.batch.repository; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse; +import org.sonarqube.ws.QualityProfiles; import com.google.common.io.Resources; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import org.sonar.batch.cache.WSLoaderResult; import org.sonar.batch.cache.WSLoader; import org.junit.Rule; @@ -102,7 +102,7 @@ public class DefaultQualityProfileLoaderTest { private static InputStream createEncodedQP(String... names) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); - WsSearchResponse.Builder responseBuilder = WsSearchResponse.newBuilder(); + QualityProfiles.SearchWsResponse.Builder responseBuilder = QualityProfiles.SearchWsResponse.newBuilder(); for (String n : names) { QualityProfile qp = QualityProfile.newBuilder().setKey(n).setName(n).setLanguage("lang").build(); diff --git a/sonar-batch/src/test/java/org/sonar/batch/repository/QualityProfileProviderTest.java b/sonar-batch/src/test/java/org/sonar/batch/repository/QualityProfileProviderTest.java index 799022ecbe3..567dcd1380d 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/repository/QualityProfileProviderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/repository/QualityProfileProviderTest.java @@ -21,12 +21,10 @@ package org.sonar.batch.repository; import static org.mockito.Mockito.when; -import org.mockito.Matchers; - import org.apache.commons.lang.mutable.MutableBoolean; import org.sonar.api.batch.bootstrap.ProjectKey; import org.sonar.batch.analysis.DefaultAnalysisMode; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import java.util.ArrayList; import java.util.List; diff --git a/sonar-batch/src/test/java/org/sonar/batch/rule/ActiveRulesProviderTest.java b/sonar-batch/src/test/java/org/sonar/batch/rule/ActiveRulesProviderTest.java index 8a18f87a51d..3df796e805b 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/rule/ActiveRulesProviderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/rule/ActiveRulesProviderTest.java @@ -29,7 +29,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.rule.RuleKey; -import org.sonarqube.ws.QualityProfiles.WsSearchResponse.QualityProfile; +import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfilesWsClient.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfilesWsClient.java new file mode 100644 index 00000000000..2adb7528af2 --- /dev/null +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfilesWsClient.java @@ -0,0 +1,44 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonarqube.ws.client.qualityprofile; + +import org.sonarqube.ws.QualityProfiles.SearchWsResponse; +import org.sonarqube.ws.client.WsClient; + +import static org.sonarqube.ws.client.WsRequest.newGetRequest; + +public class QualityProfilesWsClient { + private final WsClient wsClient; + + public QualityProfilesWsClient(WsClient wsClient) { + this.wsClient = wsClient; + } + + public SearchWsResponse search(SearchWsRequest request) { + return wsClient.execute( + newGetRequest("search") + .setParam("defaults", request.getDefaults()) + .setParam("language", request.getLanguage()) + .setParam("profileName", request.getProfileName()) + .setParam("projectKey", request.getProjectKey()), + SearchWsResponse.parser()); + } +} diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/SearchWsRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/SearchWsRequest.java new file mode 100644 index 00000000000..60df4b4eff2 --- /dev/null +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/SearchWsRequest.java @@ -0,0 +1,70 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonarqube.ws.client.qualityprofile; + +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; + +public class SearchWsRequest { + private boolean defaults; + private String language; + private String profileName; + private String projectKey; + + public boolean getDefaults() { + return defaults; + } + + public SearchWsRequest setDefaults(boolean defaults) { + this.defaults = defaults; + return this; + } + + @CheckForNull + public String getLanguage() { + return language; + } + + public SearchWsRequest setLanguage(@Nullable String language) { + this.language = language; + return this; + } + + @CheckForNull + public String getProfileName() { + return profileName; + } + + public SearchWsRequest setProfileName(@Nullable String profileName) { + this.profileName = profileName; + return this; + } + + @CheckForNull + public String getProjectKey() { + return projectKey; + } + + public SearchWsRequest setProjectKey(@Nullable String projectKey) { + this.projectKey = projectKey; + return this; + } +} diff --git a/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto b/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto index 25dd11c94fe..7ec0752759a 100644 --- a/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto +++ b/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto @@ -25,7 +25,7 @@ option java_outer_classname = "QualityProfiles"; option optimize_for = SPEED; // WS api/qualityprofiles/search -message WsSearchResponse { +message SearchWsResponse { repeated QualityProfile profiles = 1; message QualityProfile { |