Skip to content

Commit 85850b6

Browse files
committed
Polishing.
Refine Javadoc and update ReactivePageableHandlerMethodArgumentResolver. Fix nullability annotations. See #3188
1 parent 01819e0 commit 85850b6

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@
2626

2727
/**
2828
* Extracts paging information from web requests and thus allows injecting {@link Pageable} instances into controller
29-
* methods. Request properties to be parsed can be configured.
29+
* methods. Request properties to be parsed can be configured defaulting to {@code page} for the page number and
30+
* {@code size} for the page size.
31+
* <p>
32+
* Parameters can be {@link #setPrefix(String) prefixed} to disambiguate from other parameters in the request if
33+
* necessary.
3034
*
3135
* @author Oliver Gierke
3236
* @author Nick Williams
@@ -39,7 +43,8 @@ public class PageableHandlerMethodArgumentResolver extends PageableHandlerMethod
3943
implements PageableArgumentResolver {
4044

4145
private static final SortHandlerMethodArgumentResolver DEFAULT_SORT_RESOLVER = new SortHandlerMethodArgumentResolver();
42-
private SortArgumentResolver sortResolver;
46+
47+
private final SortArgumentResolver sortResolver;
4348

4449
/**
4550
* Constructs an instance of this resolved with a default {@link SortHandlerMethodArgumentResolver}.

src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverSupport.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@
3434
/**
3535
* Base class providing methods for handler method argument resolvers to create paging information from web requests and
3636
* thus allows injecting {@link Pageable} instances into controller methods. Request properties to be parsed can be
37-
* configured.
37+
* configured defaulting to {@code page} for the page number and {@code size} for the page size.
38+
* <p>
39+
* Parameters can be {@link #setPrefix(String) prefixed} to disambiguate from other parameters in the request if
40+
* necessary.
3841
*
3942
* @author Mark Paluch
4043
* @author Vedran Pavic
@@ -153,7 +156,7 @@ protected String getSizeParameterName() {
153156
*
154157
* @param prefix the prefix to be used or {@literal null} to reset to the default.
155158
*/
156-
public void setPrefix(String prefix) {
159+
public void setPrefix(@Nullable String prefix) {
157160
this.prefix = prefix == null ? DEFAULT_PREFIX : prefix;
158161
}
159162

@@ -163,7 +166,7 @@ public void setPrefix(String prefix) {
163166
*
164167
* @param qualifierDelimiter the delimiter to be used or {@literal null} to reset to the default.
165168
*/
166-
public void setQualifierDelimiter(String qualifierDelimiter) {
169+
public void setQualifierDelimiter(@Nullable String qualifierDelimiter) {
167170
this.qualifierDelimiter = qualifierDelimiter == null ? DEFAULT_QUALIFIER_DELIMITER : qualifierDelimiter;
168171
}
169172

@@ -198,7 +201,7 @@ protected Pageable getPageable(MethodParameter methodParameter, @Nullable String
198201
Optional<Integer> page = parseAndApplyBoundaries(pageString, Integer.MAX_VALUE, true);
199202
Optional<Integer> pageSize = parseAndApplyBoundaries(pageSizeString, maxPageSize, false);
200203

201-
if (!(page.isPresent() && pageSize.isPresent()) && !defaultOrFallback.isPresent()) {
204+
if (!(page.isPresent() && pageSize.isPresent()) && defaultOrFallback.isEmpty()) {
202205
return Pageable.unpaged();
203206
}
204207

@@ -210,7 +213,7 @@ protected Pageable getPageable(MethodParameter methodParameter, @Nullable String
210213
// Limit lower bound
211214
ps = ps < 1 ? defaultOrFallback.map(Pageable::getPageSize).orElseThrow(IllegalStateException::new) : ps;
212215
// Limit upper bound
213-
ps = ps > maxPageSize ? maxPageSize : ps;
216+
ps = Math.min(ps, maxPageSize);
214217

215218
return PageRequest.of(p, ps, defaultOrFallback.map(Pageable::getSort).orElseGet(Sort::unsorted));
216219
}
@@ -286,7 +289,7 @@ private Optional<Integer> parseAndApplyBoundaries(@Nullable String parameter, in
286289

287290
try {
288291
int parsed = Integer.parseInt(parameter) - (oneIndexedParameters && shiftIndex ? 1 : 0);
289-
return Optional.of(parsed < 0 ? 0 : parsed > upper ? upper : parsed);
292+
return Optional.of(parsed < 0 ? 0 : Math.min(parsed, upper));
290293
} catch (NumberFormatException e) {
291294
return Optional.of(0);
292295
}

src/main/java/org/springframework/data/web/ReactivePageableHandlerMethodArgumentResolver.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@
2828

2929
/**
3030
* Extracts paging information from web requests and thus allows injecting {@link Pageable} instances into WebFlux
31-
* controller methods. Request properties to be parsed can be configured. Default configuration uses request parameters
32-
* beginning with {@link #DEFAULT_PAGE_PARAMETER}{@link #DEFAULT_QUALIFIER_DELIMITER}.
31+
* controller methods. Request properties to be parsed can be configured defaulting to {@code page} for the page number
32+
* and {@code size} for the page size.
33+
* <p>
34+
* Parameters can be {@link #setPrefix(String) prefixed} to disambiguate from other parameters in the request if
35+
* necessary.
3336
*
3437
* @since 2.2
3538
* @author Mark Paluch
@@ -40,7 +43,7 @@ public class ReactivePageableHandlerMethodArgumentResolver extends PageableHandl
4043

4144
private static final ReactiveSortHandlerMethodArgumentResolver DEFAULT_SORT_RESOLVER = new ReactiveSortHandlerMethodArgumentResolver();
4245

43-
private ReactiveSortHandlerMethodArgumentResolver sortResolver;
46+
private final ReactiveSortHandlerMethodArgumentResolver sortResolver;
4447

4548
/**
4649
* Constructs an instance of this resolved with a default {@link ReactiveSortHandlerMethodArgumentResolver}.

0 commit comments

Comments
 (0)