Class WebQueryPageableArgumentResolver

java.lang.Object
in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver
in.co.akshitbansal.springwebquery.resolver.spring.WebQueryPageableArgumentResolver
All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver

public class WebQueryPageableArgumentResolver extends AbstractWebQueryResolver
Unified resolver for Pageable parameters participating in WebQuery-aware sorting.

This resolver delegates standard page/size parsing to Spring's PageableHandlerMethodArgumentResolver and then validates and remaps sort properties against either entity or DTO metadata.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    getQueryConfiguration(org.springframework.core.MethodParameter parameter)
    Extracts pageable-specific query metadata directly from the WebQuery annotation declared on the supplied controller method.
    org.springframework.data.domain.Pageable
    resolveArgument(@NonNull org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory binderFactory)
    Resolves the request into a validated Pageable using Spring's standard parsing first and mode-aware sort validation/remapping afterward.
    boolean
    supportsParameter(@NonNull org.springframework.core.MethodParameter parameter)
    Determines whether the supplied parameter should be resolved as a Pageable participating in WebQuery-aware sorting.

    Methods inherited from class in.co.akshitbansal.springwebquery.resolver.spring.AbstractWebQueryResolver

    getWebQueryAnnotation

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • WebQueryPageableArgumentResolver

      public WebQueryPageableArgumentResolver()
  • Method Details

    • supportsParameter

      public boolean supportsParameter(@NonNull @NonNull org.springframework.core.MethodParameter parameter)
      Determines whether the supplied parameter should be resolved as a Pageable participating in WebQuery-aware sorting.
      Specified by:
      supportsParameter in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
      Overrides:
      supportsParameter in class AbstractWebQueryResolver
      Parameters:
      parameter - method parameter under inspection
      Returns:
      true when the parameter type is assignable to Pageable and the declaring method is annotated with WebQuery
    • resolveArgument

      public org.springframework.data.domain.Pageable resolveArgument(@NonNull @NonNull org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, @NonNull @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory binderFactory)
      Resolves the request into a validated Pageable using Spring's standard parsing first and mode-aware sort validation/remapping afterward.
      Parameters:
      parameter - method parameter being resolved
      mavContainer - current model/view container, if any
      webRequest - current native web request
      binderFactory - web data binder factory, if available
      Returns:
      validated pageable instance for the current request
      Throws:
      QueryException - when query-specific validation fails
      QueryConfigurationException - when pageable resolution fails unexpectedly
    • getQueryConfiguration

      protected PageableArgumentResolverConfig getQueryConfiguration(org.springframework.core.MethodParameter parameter)
      Extracts pageable-specific query metadata directly from the WebQuery annotation 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 used for eager validation and entity-aware sort remapping.

      Parameters:
      parameter - supported method parameter whose declaring method carries WebQuery
      Returns:
      effective configuration used by pageable resolvers for sort validation