Skip to content

Commit cd482bf

Browse files
committed
DATACMNS-1827 - Polishing.
Consider Qualifier meta-annotated Sort and Pageable method parameters. Add author tag. Original pull request: #473.
1 parent e758dd3 commit cd482bf

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
import org.springframework.beans.factory.annotation.Qualifier;
2424
import org.springframework.core.MethodParameter;
25+
import org.springframework.core.annotation.MergedAnnotation;
26+
import org.springframework.core.annotation.MergedAnnotations;
2527
import org.springframework.data.domain.PageRequest;
2628
import org.springframework.data.domain.Pageable;
2729
import org.springframework.data.domain.Sort;
@@ -39,6 +41,7 @@
3941
* @see PageableHandlerMethodArgumentResolver
4042
* @see ReactivePageableHandlerMethodArgumentResolver
4143
* @author Mark Paluch
44+
* @author Vedran Pavic
4245
*/
4346
public abstract class PageableHandlerMethodArgumentResolverSupport {
4447

@@ -228,10 +231,10 @@ protected String getParameterNameToUse(String source, @Nullable MethodParameter
228231

229232
StringBuilder builder = new StringBuilder(prefix);
230233

231-
Qualifier qualifier = parameter == null ? null : parameter.getParameterAnnotation(Qualifier.class);
234+
String value = getQualifier(parameter);
232235

233-
if (qualifier != null && StringUtils.hasLength(qualifier.value())) {
234-
builder.append(qualifier.value());
236+
if (StringUtils.hasLength(value)) {
237+
builder.append(value);
235238
builder.append(qualifierDelimiter);
236239
}
237240

@@ -288,4 +291,17 @@ private Optional<Integer> parseAndApplyBoundaries(@Nullable String parameter, in
288291
return Optional.of(0);
289292
}
290293
}
294+
295+
@Nullable
296+
private static String getQualifier(@Nullable MethodParameter parameter) {
297+
298+
if (parameter == null) {
299+
return null;
300+
}
301+
302+
MergedAnnotations annotations = MergedAnnotations.from(parameter.getParameter());
303+
MergedAnnotation<Qualifier> qualifier = annotations.get(Qualifier.class);
304+
305+
return qualifier.isPresent() ? qualifier.getString("value") : null;
306+
}
291307
}

0 commit comments

Comments
 (0)