package org.infinispan.stream.impl.intops.object; import java.util.stream.Stream; import org.infinispan.stream.impl.intops.IntermediateOperation; /** * Performs distinct operation on a regular {@link Stream} * @param <S> the type in the stream */ public class DistinctOperation<S> implements IntermediateOperation<S, Stream<S>, S, Stream<S>> { private static final DistinctOperation<?> OPERATION = new DistinctOperation<>(); private DistinctOperation() { } public static <S> DistinctOperation<S> getInstance() { return (DistinctOperation<S>) OPERATION; } @Override public Stream<S> perform(Stream<S> stream) { return stream.distinct(); } }