Class EntityRSQLVisitor

java.lang.Object
com.beassolution.rule.rsql.EntityRSQLVisitor
All Implemented Interfaces:
cz.jirutka.rsql.parser.ast.RSQLVisitor<org.springframework.data.mongodb.core.query.Query,org.springframework.data.mongodb.core.query.Query>

public class EntityRSQLVisitor extends Object implements cz.jirutka.rsql.parser.ast.RSQLVisitor<org.springframework.data.mongodb.core.query.Query,org.springframework.data.mongodb.core.query.Query>
RSQL visitor for converting RSQL queries to MongoDB criteria.

This class implements the RSQL visitor pattern to convert RSQL query nodes into MongoDB criteria objects. It supports all custom operators defined in EntityRSQLOperators and handles complex query structures.

Key features include:

  • RSQL to MongoDB criteria conversion
  • Support for logical operators (AND, OR)
  • Support for comparison operators
  • Type casting and value conversion
Since:
1.0
Version:
1.0
Author:
Beas Solution Team
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Casts string values to appropriate types for MongoDB queries.
    org.springframework.data.mongodb.core.query.Criteria
    createCriteria(cz.jirutka.rsql.parser.ast.ComparisonNode comparisonNode)
    Creates MongoDB criteria from a comparison node.
    org.springframework.data.mongodb.core.query.Query
    visit(cz.jirutka.rsql.parser.ast.AndNode andNode, org.springframework.data.mongodb.core.query.Query param)
    Visits AND nodes and creates MongoDB AND criteria.
    org.springframework.data.mongodb.core.query.Query
    visit(cz.jirutka.rsql.parser.ast.ComparisonNode comparisonNode, org.springframework.data.mongodb.core.query.Query param)
    Visits comparison nodes and creates MongoDB criteria.
    org.springframework.data.mongodb.core.query.Query
    visit(cz.jirutka.rsql.parser.ast.OrNode orNode, org.springframework.data.mongodb.core.query.Query param)
    Visits OR nodes and creates MongoDB OR criteria.

    Methods inherited from class java.lang.Object

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

    • EntityRSQLVisitor

      public EntityRSQLVisitor()
  • Method Details

    • visit

      public org.springframework.data.mongodb.core.query.Query visit(cz.jirutka.rsql.parser.ast.AndNode andNode, org.springframework.data.mongodb.core.query.Query param)
      Visits AND nodes and creates MongoDB AND criteria.
      Specified by:
      visit in interface cz.jirutka.rsql.parser.ast.RSQLVisitor<org.springframework.data.mongodb.core.query.Query,org.springframework.data.mongodb.core.query.Query>
      Parameters:
      andNode - The AND node to process
      param - The query to add criteria to
      Returns:
      The modified query with AND criteria
    • visit

      public org.springframework.data.mongodb.core.query.Query visit(cz.jirutka.rsql.parser.ast.OrNode orNode, org.springframework.data.mongodb.core.query.Query param)
      Visits OR nodes and creates MongoDB OR criteria.
      Specified by:
      visit in interface cz.jirutka.rsql.parser.ast.RSQLVisitor<org.springframework.data.mongodb.core.query.Query,org.springframework.data.mongodb.core.query.Query>
      Parameters:
      orNode - The OR node to process
      param - The query to add criteria to
      Returns:
      The modified query with OR criteria
    • visit

      public org.springframework.data.mongodb.core.query.Query visit(cz.jirutka.rsql.parser.ast.ComparisonNode comparisonNode, org.springframework.data.mongodb.core.query.Query param)
      Visits comparison nodes and creates MongoDB criteria.
      Specified by:
      visit in interface cz.jirutka.rsql.parser.ast.RSQLVisitor<org.springframework.data.mongodb.core.query.Query,org.springframework.data.mongodb.core.query.Query>
      Parameters:
      comparisonNode - The comparison node to process
      param - The query to add criteria to
      Returns:
      The modified query with comparison criteria
    • createCriteria

      public org.springframework.data.mongodb.core.query.Criteria createCriteria(cz.jirutka.rsql.parser.ast.ComparisonNode comparisonNode)
      Creates MongoDB criteria from a comparison node.

      This method converts RSQL comparison operators to MongoDB criteria based on the operator type. It handles all supported operators including equality, comparison, collection, and pattern matching operators.

      Parameters:
      comparisonNode - The comparison node to convert
      Returns:
      The MongoDB criteria
    • castValue

      public Object castValue(String v)
      Casts string values to appropriate types for MongoDB queries.

      This method converts string values from RSQL queries to appropriate Java types based on the content. It handles numbers, booleans, and strings.

      Parameters:
      v - The string value to cast
      Returns:
      The casted value