package org.infinispan.stream.impl.intops.object; import java.util.function.Predicate; import java.util.stream.Stream; import org.infinispan.stream.impl.intops.IntermediateOperation; /** * Performs filter operation on a regular {@link Stream} * @param <S> the type in the stream */ public class FilterOperation<S> implements IntermediateOperation<S, Stream<S>, S, Stream<S>> { private final Predicate<? super S> predicate; public FilterOperation(Predicate<? super S> predicate) { this.predicate = predicate; } @Override public Stream<S> perform(Stream<S> stream) { return stream.filter(predicate); } public Predicate<? super S> getPredicate() { return predicate; } }