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

public abstract class AbstractWebQueryPageableArgumentResolver extends AbstractWebQueryResolver
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 Details

    • delegate

      protected final org.springframework.data.web.PageableHandlerMethodArgumentResolver delegate
      Delegate used to parse raw pageable parameters from the request.
    • sortableFieldValidator

      protected final Validator<SortableFieldValidator.Field> sortableFieldValidator
      Validator used to enforce @Sortable constraints on resolved sort fields.
  • Constructor Details

    • AbstractWebQueryPageableArgumentResolver

      public 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 parsing
      globalAllowAndOperator - global fallback for logical AND allowance
      globalAllowOrOperator - global fallback for logical OR allowance
      globalMaxASTDepth - global fallback for maximum AST depth
  • Method Details

    • supportsParameter

      public boolean supportsParameter(@NonNull @NonNull org.springframework.core.MethodParameter parameter)
      Specified by:
      supportsParameter in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
      Overrides:
      supportsParameter in class AbstractWebQueryResolver
    • 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 request
      queryConfig - effective query configuration derived from WebQuery
      Returns:
      pageable with validated and possibly remapped sort orders