]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8740 remove abusing use of Stream API
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 3 Feb 2017 09:04:30 +0000 (10:04 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 7 Feb 2017 09:27:24 +0000 (10:27 +0100)
server/sonar-server/src/main/java/org/sonar/server/favorite/ws/SearchAction.java

index 64bc9e8a7ad5c696f52b892be5a16e19c283633d..d1c99ab709f9483dacc617fa76ce62fd0be27297 100644 (file)
@@ -91,12 +91,10 @@ public class SearchAction implements FavoritesWsAction {
   private SearchResults search(SearchRequest request) {
     userSession.checkLoggedIn();
     try (DbSession dbSession = dbClient.openSession(false)) {
-      return Stream.of(request)
-        .map(SearchResults.builder(dbSession))
-        .peek(this::addAuthorizedProjectUuids)
-        .peek(this::addFavorites)
-        .map(SearchResults.Builder::build)
-        .collect(Collectors.toOneElement());
+      SearchResults.Builder builder = SearchResults.newBuilder(request);
+      addAuthorizedProjectUuids(dbSession, builder);
+      addFavorites(builder);
+      return builder.build();
     }
   }
 
@@ -104,9 +102,9 @@ public class SearchAction implements FavoritesWsAction {
     builder.allFavorites = favoriteFinder.list();
   }
 
-  private void addAuthorizedProjectUuids(SearchResults.Builder results) {
+  private void addAuthorizedProjectUuids(DbSession dbSession, SearchResults.Builder results) {
     results.authorizedProjectUuids = ImmutableSet
-      .copyOf(dbClient.authorizationDao().selectAuthorizedRootProjectsUuids(results.dbSession, userSession.getUserId(), UserRole.USER));
+      .copyOf(dbClient.authorizationDao().selectAuthorizedRootProjectsUuids(dbSession, userSession.getUserId(), UserRole.USER));
   }
 
   private static class SearchResults {
@@ -124,19 +122,17 @@ public class SearchAction implements FavoritesWsAction {
         .collect(Collectors.toList());
     }
 
-    static Function<SearchRequest, Builder> builder(DbSession dbSession) {
-      return request -> new Builder(dbSession, request);
+    static Builder newBuilder(SearchRequest request) {
+      return new Builder(request);
     }
 
     private static class Builder {
-      private final DbSession dbSession;
       private final int page;
       private final int pageSize;
       private Set<String> authorizedProjectUuids;
       private List<ComponentDto> allFavorites;
 
-      private Builder(DbSession dbSession, SearchRequest request) {
-        this.dbSession = dbSession;
+      private Builder(SearchRequest request) {
         this.page = request.getPage();
         this.pageSize = request.getPageSize();
       }