static void addFilters()

in persistence-commons/persistence-commons-redis/src/main/java/org/kie/kogito/persistence/redis/RedisQueryFactory.java [49:85]


    static void addFilters(io.redisearch.Query query, List<AttributeFilter<?>> filters) {
        for (AttributeFilter attributeFilter : filters) {
            switch (attributeFilter.getCondition()) {
                case EQUAL:
                case LIKE:
                    break;
                case GT:
                    query.addFilter(
                            new io.redisearch.Query.NumericFilter(
                                    attributeFilter.getAttribute(), convertNumeric(attributeFilter.getValue()), true, Double.POSITIVE_INFINITY, false));
                    break;
                case GTE:
                    query.addFilter(
                            new io.redisearch.Query.NumericFilter(
                                    attributeFilter.getAttribute(), convertNumeric(attributeFilter.getValue()), false, Double.POSITIVE_INFINITY, false));
                    break;
                case LT:
                    query.addFilter(
                            new io.redisearch.Query.NumericFilter(
                                    attributeFilter.getAttribute(), Double.NEGATIVE_INFINITY, false, convertNumeric(attributeFilter.getValue()), true));
                    break;
                case LTE:
                    query.addFilter(
                            new io.redisearch.Query.NumericFilter(
                                    attributeFilter.getAttribute(), Double.NEGATIVE_INFINITY, false, convertNumeric(attributeFilter.getValue()), false));
                    break;
                case BETWEEN:
                    List<?> value = (List<?>) attributeFilter.getValue();
                    query.addFilter(
                            new io.redisearch.Query.NumericFilter(
                                    attributeFilter.getAttribute(), convertNumeric(value.get(0)), false, convertNumeric(value.get(1)), false));
                    break;
                default:
                    throw new UnsupportedOperationException("Redis does not support query filter: " + attributeFilter.getCondition());
            }
        }
    }