From 36c9fa041018d7eed91f1d22e0c5eda075737ebc Mon Sep 17 00:00:00 2001 From: Daniel Schwarz Date: Wed, 19 Apr 2017 16:17:15 +0200 Subject: [PATCH] SONAR-9075 fix quality flaws: ComponentIndexQuery#limit is not nullable --- .../server/component/index/ComponentIndexQuery.java | 13 ++++++------- .../server/component/ws/SuggestionsAction.java | 12 ++++++------ .../server/component/ws/SuggestionsActionTest.java | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexQuery.java b/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexQuery.java index 806a7ba796e..74a62b04677 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexQuery.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexQuery.java @@ -23,20 +23,19 @@ import java.util.Collection; import java.util.Collections; import java.util.Optional; import java.util.Set; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; public class ComponentIndexQuery { + public static final int DEFAULT_LIMIT = 6; + private final String query; private final Collection qualifiers; private final Set recentlyBrowsedKeys; private final Set favoriteKeys; - @CheckForNull - private final Integer limit; + private final int limit; private ComponentIndexQuery(Builder builder) { this.query = requireNonNull(builder.query); @@ -75,7 +74,7 @@ public class ComponentIndexQuery { private Collection qualifiers = Collections.emptyList(); private Set recentlyBrowsedKeys = Collections.emptySet(); private Set favoriteKeys = Collections.emptySet(); - private Integer limit; + private int limit = DEFAULT_LIMIT; private Builder() { } @@ -101,8 +100,8 @@ public class ComponentIndexQuery { return this; } - public Builder setLimit(@Nullable Integer limit) { - checkArgument(limit == null || limit > 0, "Limit has to be strictly positive: %s", limit); + public Builder setLimit(int limit) { + checkArgument(limit > 0, "Limit has to be strictly positive: %s", limit); this.limit = limit; return this; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java b/server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java index 0222dc97ebb..8250205dc16 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java @@ -69,7 +69,6 @@ public class SuggestionsAction implements ComponentsWsAction { static final String SHORT_INPUT_WARNING = "short_input"; private static final long MAXIMUM_RECENTLY_BROWSED = 50; - static final int DEFAULT_LIMIT = 6; static final int EXTENDED_LIMIT = 20; private final ComponentIndex index; @@ -107,7 +106,7 @@ public class SuggestionsAction implements ComponentsWsAction { .setExampleValue("sonar"); action.createParam(PARAM_MORE) - .setDescription("Category, for which to display " + EXTENDED_LIMIT + " instead of " + DEFAULT_LIMIT + " results") + .setDescription("Category, for which to display " + EXTENDED_LIMIT + " instead of " + ComponentIndexQuery.DEFAULT_LIMIT + " results") .setPossibleValues(stream(SuggestionCategory.values()).map(SuggestionCategory::getName).toArray(String[]::new)) .setSince("6.4"); @@ -153,13 +152,14 @@ public class SuggestionsAction implements ComponentsWsAction { } private ComponentIndexResults getComponentsPerQualifiers(@Nullable String more, ComponentIndexQuery.Builder queryBuilder) { + List qualifiers; if (more == null) { - queryBuilder.setQualifiers(stream(SuggestionCategory.values()).map(SuggestionCategory::getQualifier).collect(Collectors.toList())) - .setLimit(DEFAULT_LIMIT); + qualifiers = stream(SuggestionCategory.values()).map(SuggestionCategory::getQualifier).collect(Collectors.toList()); } else { - queryBuilder.setQualifiers(singletonList(SuggestionCategory.getByName(more).getQualifier())) - .setLimit(EXTENDED_LIMIT); + qualifiers = singletonList(SuggestionCategory.getByName(more).getQualifier()); + queryBuilder.setLimit(EXTENDED_LIMIT); } + queryBuilder.setQualifiers(qualifiers); return searchInIndex(queryBuilder.build()); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java index 437f9531b3c..398f1f42292 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java @@ -60,7 +60,7 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.sonar.db.component.ComponentTesting.newModuleDto; import static org.sonar.db.component.ComponentTesting.newProjectDto; -import static org.sonar.server.component.ws.SuggestionsAction.DEFAULT_LIMIT; +import static org.sonar.server.component.index.ComponentIndexQuery.DEFAULT_LIMIT; import static org.sonar.server.component.ws.SuggestionsAction.EXTENDED_LIMIT; import static org.sonar.server.component.ws.SuggestionsAction.SHORT_INPUT_WARNING; import static org.sonar.server.component.ws.SuggestionsAction.PARAM_MORE; -- 2.39.5