public TemplateVariables getPaginationTemplateVariables(MethodParameter parameter, UriComponents template) {
String pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter);
String sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter);
List<TemplateVariable> names = new ArrayList<>();
MultiValueMap<String, String> queryParameters = template.getQueryParams();
boolean append = !queryParameters.isEmpty();
for (String propertyName : Arrays.asList(pagePropertyName, sizePropertyName)) {
if (!queryParameters.containsKey(propertyName)) {
VariableType type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM;
String description = String.format("pagination.%s.description", propertyName);
names.add(new TemplateVariable(propertyName, type, description));
}
}
TemplateVariables pagingVariables = new TemplateVariables(names);
return pagingVariables.concat(sortResolver.getSortTemplateVariables(parameter, template));
}