
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