Class StreamsUtil


  • public class StreamsUtil
    extends Object
    • Constructor Detail

      • StreamsUtil

        public StreamsUtil()
    • Method Detail

      • closing

        public static <T> Stream<T> closing​(Stream<T> stream)
        Returns the original stream that is closed on terminating operation. It is used, for example, for closing hibernate provided streams since it is required by hibernate documentation.
        Parameters:
        stream - the stream which is expected to be closed on termination
        Returns:
        stream that will be closed on terminating operation
      • throwIfEmpty

        public static <T> Stream<T> throwIfEmpty​(Stream<T> stream,
                                                 RuntimeException ex)
        Returns the original stream if the stream is not empty. Otherwise throws the provided exception.
        Parameters:
        stream - Stream to be examined.
        ex - Exception to be thrown if the stream is empty.
        Returns:
        Stream
      • paginatedStream

        public static <T> Stream<T> paginatedStream​(Stream<T> originalStream,
                                                    Integer first,
                                                    Integer max)
        Returns the original stream that is limited with skip and limit functions based on values of first and max parameters.
        Type Parameters:
        T - Type of items in the stream
        Parameters:
        originalStream - Stream to be limited.
        first - Index of first item to be returned by the stream. Ignored if negative, zero null.
        max - Maximum number of items to be returned by the stream. Ignored if negative or null.
        Returns:
        Stream
      • distinctByKey

        public static <T> Predicate<T> distinctByKey​(Function<? super T,​?> keyExtractor)
        distinctByKey is not supposed to be used with parallel streams To make this method synchronized use ConcurrentHashMap<Object, Boolean> instead of HashSet