
com.redis.om.spring.search.stream.predicates.OrPredicate Maven / Gradle / Ivy
package com.redis.om.spring.search.stream.predicates;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Stream;
import io.redisearch.querybuilder.Node;
import io.redisearch.querybuilder.QueryBuilder;
public class OrPredicate extends BaseAbstractPredicate {
private List> predicates = new ArrayList<>();
public OrPredicate(SearchFieldPredicate root) {
predicates.add(root);
}
public void addPredicate(Predicate predicate) {
this.predicates.add(predicate);
}
public Stream> stream() {
return predicates.stream();
}
@SuppressWarnings("rawtypes")
@Override
public Node apply(Node root) {
Node[] nodes = stream().map(p -> ((SearchFieldPredicate) p).apply(root)).toArray(Node[]::new);
return QueryBuilder.union(nodes);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy