Class EntityAwareRsqlSpecArgumentResolver
java.lang.Object
in.co.akshitbansal.springwebquery.resolver.RsqlSpecArgumentResolver
in.co.akshitbansal.springwebquery.resolver.EntityAwareRsqlSpecArgumentResolver
- All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver
Entity-based resolver for
Specification parameters annotated with
RsqlSpec.
This resolver is active when WebQuery.dtoClass() is not configured
(i.e. equals void.class). It validates incoming RSQL selectors against
entity fields and optional FieldMapping aliases before producing a
JPA specification.
-
Field Summary
Fields inherited from class in.co.akshitbansal.springwebquery.resolver.RsqlSpecArgumentResolver
annotationUtil, customPredicates, rsqlParser -
Constructor Summary
ConstructorsConstructorDescriptionEntityAwareRsqlSpecArgumentResolver(Set<RsqlOperator> defaultOperators, Set<? extends RsqlCustomOperator<?>> customOperators, AnnotationUtil annotationUtil) Creates an entity-aware RSQL specification resolver. -
Method Summary
Modifier and TypeMethodDescription@Nullable ObjectresolveArgument(@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 aSpecificationfrom the configured RSQL request parameter.booleansupportsParameter(org.springframework.core.MethodParameter parameter) Determines whether this resolver should handle the given parameter.
-
Constructor Details
-
EntityAwareRsqlSpecArgumentResolver
public EntityAwareRsqlSpecArgumentResolver(Set<RsqlOperator> defaultOperators, Set<? extends RsqlCustomOperator<?>> customOperators, AnnotationUtil annotationUtil) Creates an entity-aware RSQL specification resolver.- Parameters:
defaultOperators- built-in operators accepted in RSQL expressionscustomOperators- custom operators supported by parser and predicatesannotationUtil- utility for resolving annotations and configuration checks
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) Determines whether this resolver should handle the given parameter.- Parameters:
parameter- method parameter under inspection- Returns:
truewhen parameter is aSpecificationwithRsqlSpecand no DTO class is configured
-
resolveArgument
public @Nullable Object 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) throws Exception Resolves aSpecificationfrom the configured RSQL request parameter.- Parameters:
parameter- controller method parameter being resolvedmavContainer- current MVC containerwebRequest- current requestbinderFactory- binder factory- Returns:
- resolved specification, or
Specification.unrestricted()when no filter exists - Throws:
Exception- when resolution fails
-