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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.springframework.data.web.PageableHandlerMethodArgumentResolverDelegate used to parse raw pageable parameters from the request.protected final FieldResolverFactoryFactory used to create entity-aware or DTO-aware field resolvers for sort paths.protected final SortableFieldValidatorValidator used to enforce@Sortableconstraints on resolved sort fields. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected PageableArgumentResolverConfiggetQueryConfiguration(org.springframework.core.MethodParameter parameter) Extracts pageable-specific query metadata directly from theWebQueryannotation declared on the supplied controller method.org.springframework.data.domain.PageableresolveArgument(org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory binderFactory) Resolves the request into a validatedPageableusing Spring's standard parsing first and subclass-specific sort validation afterward.protected abstract org.springframework.data.domain.PageableresolvePageable(org.springframework.data.domain.Pageable pageable, PageableArgumentResolverConfig queryConfig) Validates and remaps pageable sorting according to the effective query configuration.booleansupportsParameter(org.springframework.core.MethodParameter parameter) Determines whether the supplied parameter should be resolved as aPageableparticipating inWebQuery-aware sorting.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. -
fieldResolverFactory
Factory used to create entity-aware or DTO-aware field resolvers for sort paths.
-
-
Constructor Details
-
AbstractWebQueryPageableArgumentResolver
public AbstractWebQueryPageableArgumentResolver()
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) Determines whether the supplied parameter should be resolved as aPageableparticipating inWebQuery-aware sorting.- Specified by:
supportsParameterin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver- Overrides:
supportsParameterin classAbstractWebQueryResolver- Parameters:
parameter- method parameter under inspection- Returns:
truewhen the parameter type is assignable toPageableand the declaring method is annotated withWebQuery
-
resolveArgument
public org.springframework.data.domain.Pageable resolveArgument(org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory binderFactory) Resolves the request into a validatedPageableusing Spring's standard parsing first and subclass-specific sort validation afterward.- Parameters:
parameter- method parameter being resolvedmavContainer- current model/view container, if anywebRequest- current native web requestbinderFactory- web data binder factory, if available- Returns:
- validated pageable instance for the current request
- Throws:
QueryException- when query-specific validation failsQueryConfigurationException- when pageable resolution fails unexpectedly
-
resolvePageable
protected abstract org.springframework.data.domain.Pageable resolvePageable(org.springframework.data.domain.Pageable pageable, PageableArgumentResolverConfig 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 PageableArgumentResolverConfig getQueryConfiguration(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
-