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

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