Class AnnotationUtil
java.lang.Object
in.co.akshitbansal.springwebquery.util.AnnotationUtil
Utility methods for validating query-related annotation metadata.
This utility validates FieldMapping declarations and resolves
filterability/operator constraints from RsqlFilterable annotations,
including composed annotations in this library's annotation package.
-
Constructor Summary
ConstructorsConstructorDescriptionAnnotationUtil(Set<? extends RsqlCustomOperator<?>> customOperators) Creates an annotation utility backed by registered custom operator instances. -
Method Summary
Modifier and TypeMethodDescriptionvoidvalidateFieldMappings(@NonNull FieldMapping[] fieldMappings) ValidatesFieldMappingdefinitions declared inWebQuery.voidvalidateFilterableField(@NonNull Field field, cz.jirutka.rsql.parser.ast.ComparisonOperator operator, String fieldPath) Validates that a field is marked as filterable and that the requested operator is permitted by itsRsqlFilterabledeclaration(s).
-
Constructor Details
-
AnnotationUtil
Creates an annotation utility backed by registered custom operator instances.- Parameters:
customOperators- custom operators available to annotation-driven validation
-
-
Method Details
-
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 (
-
validateFilterableField
public void validateFilterableField(@NonNull @NonNull Field field, cz.jirutka.rsql.parser.ast.ComparisonOperator operator, String fieldPath) Validates that a field is marked as filterable and that the requested operator is permitted by itsRsqlFilterabledeclaration(s).- Parameters:
field- field being targeted by the request selectoroperator- comparison operator requested in the queryfieldPath- original selector path from the request- Throws:
QueryFieldValidationException- if the field is not filterableQueryForbiddenOperatorException- if the operator is not allowed for the field
-