code: private void parseAndBuildFilters(EntityType entityType, KuduScannerBuilder scannerBuilder, Expression whereExp)
      {
          if (whereExp instanceof ComparisonExpression)
          {
              String left = ((ComparisonExpression) whereExp).getLeftExpression().toActualText();
  
              String right = ((ComparisonExpression) whereExp).getRightExpression().toActualText();
              if (right.startsWith(POSITIONAL_PREFIX) || right.startsWith(PARAMETERIZED_PREFIX))
              {
                  right = kunderaQuery.getParametersMap().get(right) + "";
              }
              Attribute attribute = entityType.getAttribute(left.split(DOT_REGEX)[1]);
              addColumnRangePredicateToBuilder((Field) attribute.getJavaMember(), scannerBuilder,
                      ((AbstractAttribute) attribute).getJPAColumnName(), right,
                      ((ComparisonExpression) whereExp).getActualIdentifier());
          }
          else if (whereExp instanceof AndExpression)
          {
              parseAndBuildFilters(entityType, scannerBuilder, ((AndExpression) whereExp).getLeftExpression());
              parseAndBuildFilters(entityType, scannerBuilder, ((AndExpression) whereExp).getRightExpression());
          }
          else if (whereExp instanceof InExpression)
          {
  
              ListIterator<Expression> inIter = ((InExpression) whereExp).getInItems().children().iterator();
              Attribute attribute = entityType.getAttribute(((InExpression) whereExp).getExpression().toActualText()
                      .split(DOT_REGEX)[1]);
              addInPredicateToBuilder(scannerBuilder, inIter, attribute);
          }
  
          else
          {
              logger.error("Operation not supported");
              throw new KunderaException("Operation not supported");
          }
      }
docs: Parses the and build filters.
  
  @param entityType
  the entity type
  @param scannerBuilder
  the scanner builder
  @param whereExp
  the where exp