All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.redis.om.spring.search.stream.predicates.numeric.InPredicate Maven / Gradle / Ivy

package com.redis.om.spring.search.stream.predicates.numeric;

import java.lang.reflect.Field;
import java.util.List;

import com.redis.om.spring.search.stream.predicates.BaseAbstractPredicate;

import io.redisearch.querybuilder.Node;
import io.redisearch.querybuilder.QueryBuilder;
import io.redisearch.querybuilder.QueryNode;
import io.redisearch.querybuilder.Values;

public class InPredicate extends BaseAbstractPredicate {

  private List values;

  public InPredicate(Field field, List values) {
    super(field);
    this.values = values;
  }

  public List getValues() {
    return values;
  }

  @Override
  public Node apply(Node root) {
    QueryNode or = QueryBuilder.union();

    Class cls = values.get(0).getClass();

    for (Object value : getValues()) {
      if (cls == Integer.class) {
        or.add(getField().getName(), Values.eq(Integer.valueOf(value.toString())));
      } else {
        or.add(getField().getName(), Values.eq(Double.valueOf(value.toString())));
      }
    }

    return QueryBuilder.intersect(root, or);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy