Class DtoAwareRestrictedPageableArgumentResolver

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

public class DtoAwareRestrictedPageableArgumentResolver extends Object implements org.springframework.web.method.support.HandlerMethodArgumentResolver
DTO-based resolver for Pageable parameters annotated with RestrictedPageable.

This resolver validates sort selectors against a DTO contract and maps those selectors to entity paths (using MapsTo where provided) before returning the final pageable.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    @Nullable Object
    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 and validates a Pageable argument with DTO-based sorting rules.
    boolean
    supportsParameter(org.springframework.core.MethodParameter parameter)
    Determines whether this resolver should handle the given parameter.

    Methods inherited from class java.lang.Object

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

    • DtoAwareRestrictedPageableArgumentResolver

      public DtoAwareRestrictedPageableArgumentResolver()
  • Method Details

    • supportsParameter

      public boolean supportsParameter(org.springframework.core.MethodParameter parameter)
      Determines whether this resolver should handle the given parameter.
      Specified by:
      supportsParameter in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
      Parameters:
      parameter - method parameter under inspection
      Returns:
      true when parameter is Pageable with RestrictedPageable and WebQuery has a DTO class
    • resolveArgument

      public @Nullable Object 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) throws Exception
      Resolves and validates a Pageable argument with DTO-based sorting rules.
      Specified by:
      resolveArgument in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
      Parameters:
      parameter - controller method parameter being resolved
      mavContainer - current MVC container
      webRequest - current request
      binderFactory - binder factory
      Returns:
      validated pageable with DTO selectors translated to entity paths
      Throws:
      Exception - when resolution fails