Class AbstractWebQueryPageableArgumentResolver
- All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver
- Direct Known Subclasses:
WebQueryDTOAwarePageableArgumentResolver,WebQueryEntityAwarePageableArgumentResolver
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 ClassesModifier and TypeClassDescriptionprotected static classEffective pageable-specific query metadata extracted from a supportedWebQuery-annotated controller method. -
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. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractWebQueryPageableArgumentResolver(org.springframework.data.web.PageableHandlerMethodArgumentResolver delegate) Creates a pageable resolver base with shared global defaults. -
Method Summary
Modifier and TypeMethodDescriptiongetQueryConfiguration(@NonNull org.springframework.core.MethodParameter parameter) Extracts pageable-specific query metadata directly from theWebQueryannotation declared on the supplied controller method.org.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, AbstractWebQueryPageableArgumentResolver.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
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) Creates a pageable resolver base with shared global defaults.- Parameters:
delegate- Spring's pageable resolver used for base pagination parsing
-
-
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, AbstractWebQueryPageableArgumentResolver.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
-
getQueryConfiguration
protected AbstractWebQueryPageableArgumentResolver.QueryConfiguration getQueryConfiguration(@NonNull @NonNull org.springframework.core.MethodParameter parameter) Extracts pageable-specific query metadata directly from theWebQueryannotation declared on the supplied controller method.Unlike specification resolution, pageable handling does not consume operator policies or AST settings, so this configuration contains only the entity type, optional DTO type, and the declared field mappings retained for entity-aware sort validation and remapping.
- Parameters:
parameter- supported method parameter whose declaring method carriesWebQuery- Returns:
- effective configuration used by pageable resolvers for sort validation
-