Class AnnotationUtil
java.lang.Object
in.co.akshitbansal.springwebquery.util.AnnotationUtil
Utility methods for resolving query-related annotations from controller metadata
and validating
FieldMapping declarations.-
Constructor Summary
ConstructorsConstructorDescriptionAnnotationUtil(Set<? extends RsqlCustomOperator<?>> customOperators) Creates an annotation utility backed by registered custom operator instances. -
Method Summary
Modifier and TypeMethodDescriptionSet<cz.jirutka.rsql.parser.ast.ComparisonOperator> getAllowedOperators(@NonNull RsqlFilterable filterable) Computes the full set of operators allowed for a field by combining built-in operators and registered custom operators referenced byRsqlFilterable.resolveWebQueryFromParameter(@NonNull org.springframework.core.MethodParameter parameter) ResolvesWebQueryfrom the controller method that declares the provided Spring MVC method parameter.voidvalidateFieldMappings(@NonNull FieldMapping[] fieldMappings) ValidatesFieldMappingdefinitions declared inWebQuery.
-
Constructor Details
-
AnnotationUtil
Creates an annotation utility backed by registered custom operator instances.- Parameters:
customOperators- custom operators available to annotation-driven validation
-
-
Method Details
-
resolveWebQueryFromParameter
public WebQuery resolveWebQueryFromParameter(@NonNull @NonNull org.springframework.core.MethodParameter parameter) ResolvesWebQueryfrom the controller method that declares the provided Spring MVC method parameter.- Parameters:
parameter- controller method parameter currently being resolved- Returns:
- resolved
WebQueryannotation - Throws:
QueryConfigurationException- if the method cannot be resolved or is not annotated withWebQuery
-
validateFieldMappings
ValidatesFieldMappingdefinitions declared inWebQuery.Validation rules:
- Alias names must be unique (
FieldMapping.name()). - Target entity fields must be unique (
FieldMapping.field()).
- Parameters:
fieldMappings- field mappings to validate- Throws:
QueryConfigurationException- if duplicate aliases or duplicate target fields are found
- Alias names must be unique (
-
getAllowedOperators
public Set<cz.jirutka.rsql.parser.ast.ComparisonOperator> getAllowedOperators(@NonNull @NonNull RsqlFilterable filterable) Computes the full set of operators allowed for a field by combining built-in operators and registered custom operators referenced byRsqlFilterable.- Parameters:
filterable- field-level filterability metadata- Returns:
- allowed comparison operators for the field
- Throws:
QueryConfigurationException- if a referenced custom operator is not registered
-