Class AbstractWebQueryPageableArgumentResolver
java.lang.Object
in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver
in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryPageableArgumentResolver
- All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver
- Direct Known Subclasses:
WebQueryDTOAwarePageableArgumentResolver,WebQueryEntityAwarePageableArgumentResolver
Base resolver for
Pageable parameters participating in
WebQuery-aware sorting.
This class delegates standard page/size parsing to Spring's
PageableHandlerMethodArgumentResolver and lets subclasses validate
and remap sort properties against either entity or DTO metadata.
-
Nested Class Summary
Nested classes/interfaces inherited from class in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver
AbstractWebQueryResolver.QueryConfiguration -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.springframework.data.web.PageableHandlerMethodArgumentResolverDelegate used to parse raw pageable parameters from the request.protected final Validator<SortableFieldValidator.SortableField>Validator used to enforce@Sortableconstraints on resolved sort fields.Fields inherited from class in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver
globalAllowAndOperator, globalAllowOrOperator, globalMaxASTDepth -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractWebQueryPageableArgumentResolver(org.springframework.data.web.PageableHandlerMethodArgumentResolver delegate, boolean globalAllowAndOperator, boolean globalAllowOrOperator, int globalMaxASTDepth) Creates a pageable resolver base with shared global defaults. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.data.domain.PageableresolveArgument(@NonNull org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, org.springframework.web.bind.support.WebDataBinderFactory binderFactory) protected abstract org.springframework.data.domain.PageableresolvePageable(org.springframework.data.domain.Pageable pageable, AbstractWebQueryResolver.QueryConfiguration queryConfig) Validates and remaps pageable sorting according to the effective query configuration.booleansupportsParameter(@NonNull org.springframework.core.MethodParameter parameter) Determines whether the supplied method parameter belongs to a controller method annotated withWebQuery.Methods inherited from class in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver
getQueryConfiguration, getWebQueryAnnotation
-
Field Details
-
delegate
protected final org.springframework.data.web.PageableHandlerMethodArgumentResolver delegateDelegate used to parse raw pageable parameters from the request. -
sortableFieldValidator
Validator used to enforce@Sortableconstraints on resolved sort fields.
-
-
Constructor Details
-
AbstractWebQueryPageableArgumentResolver
protected AbstractWebQueryPageableArgumentResolver(org.springframework.data.web.PageableHandlerMethodArgumentResolver delegate, boolean globalAllowAndOperator, boolean globalAllowOrOperator, int globalMaxASTDepth) Creates a pageable resolver base with shared global defaults.- Parameters:
delegate- Spring's pageable resolver used for base pagination parsingglobalAllowAndOperator- global fallback for logical AND allowanceglobalAllowOrOperator- global fallback for logical OR allowanceglobalMaxASTDepth- global fallback for maximum AST depth
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(@NonNull @NonNull org.springframework.core.MethodParameter parameter) Description copied from class:AbstractWebQueryResolverDetermines whether the supplied method parameter belongs to a controller method annotated withWebQuery.This base implementation uses
AbstractWebQueryResolver.getWebQueryAnnotation(MethodParameter)as the single source of truth for annotation lookup. Missing methods or missing annotations are treated as "not supported" rather than exceptional conditions so Spring MVC can continue evaluating other resolvers.- Specified by:
supportsParameterin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver- Overrides:
supportsParameterin classAbstractWebQueryResolver- Parameters:
parameter- method parameter under inspection- Returns:
truewhen the declaring method hasWebQuery, otherwisefalse
-
resolveArgument
public org.springframework.data.domain.Pageable resolveArgument(@NonNull @NonNull org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, @NonNull @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, org.springframework.web.bind.support.WebDataBinderFactory binderFactory) -
resolvePageable
protected abstract org.springframework.data.domain.Pageable resolvePageable(org.springframework.data.domain.Pageable pageable, AbstractWebQueryResolver.QueryConfiguration queryConfig) Validates and remaps pageable sorting according to the effective query configuration.- Parameters:
pageable- pageable parsed from the requestqueryConfig- effective query configuration derived fromWebQuery- Returns:
- pageable with validated and possibly remapped sort orders
-