Class ValidationRSQLVisitor
java.lang.Object
in.co.akshitbansal.springwebquery.ValidationRSQLVisitor
- All Implemented Interfaces:
cz.jirutka.rsql.parser.ast.RSQLVisitor<Void,NodeMetadata>
- Direct Known Subclasses:
DTOValidationRSQLVisitor,EntityValidationRSQLVisitor
public abstract class ValidationRSQLVisitor
extends Object
implements cz.jirutka.rsql.parser.ast.RSQLVisitor<Void,NodeMetadata>
Base RSQL AST visitor that enforces logical operator and depth constraints.
Subclasses are responsible for validating ComparisonNode details,
while this base class handles:
- Disallowing AND/OR nodes based on configuration.
- Ensuring the AST does not exceed the configured maximum depth.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidvalidateComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode node) Validates a comparison node for field/operator correctness.protected voidvalidateNode(cz.jirutka.rsql.parser.ast.Node node, NodeMetadata metadata) Validates logical operator usage and depth constraints for the given node.visit(cz.jirutka.rsql.parser.ast.AndNode node, NodeMetadata metadata) Validates AND nodes and recursively visits child nodes.visit(cz.jirutka.rsql.parser.ast.ComparisonNode node, NodeMetadata metadata) Validates comparison nodes and delegates field/operator validation.visit(cz.jirutka.rsql.parser.ast.OrNode node, NodeMetadata metadata) Validates OR nodes and recursively visits child nodes.
-
Constructor Details
-
ValidationRSQLVisitor
public ValidationRSQLVisitor()
-
-
Method Details
-
visit
Validates AND nodes and recursively visits child nodes.- Specified by:
visitin interfacecz.jirutka.rsql.parser.ast.RSQLVisitor<Void,NodeMetadata> - Parameters:
node- AND node to validatemetadata- traversal metadata including current depth- Returns:
null(visitor contract)
-
visit
Validates OR nodes and recursively visits child nodes.- Specified by:
visitin interfacecz.jirutka.rsql.parser.ast.RSQLVisitor<Void,NodeMetadata> - Parameters:
node- OR node to validatemetadata- traversal metadata including current depth- Returns:
null(visitor contract)
-
visit
Validates comparison nodes and delegates field/operator validation.- Specified by:
visitin interfacecz.jirutka.rsql.parser.ast.RSQLVisitor<Void,NodeMetadata> - Parameters:
node- comparison node to validatemetadata- traversal metadata including current depth- Returns:
null(visitor contract)
-
validateComparisonNode
protected abstract void validateComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode node) Validates a comparison node for field/operator correctness.- Parameters:
node- comparison node to validate
-
validateNode
Validates logical operator usage and depth constraints for the given node.- Parameters:
node- node to validatemetadata- node metadata including current depth- Throws:
QueryValidationException- if an operator is disallowed or the depth exceeds the limit
-