Class StreamDecorator<R>

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>, java.util.stream.Stream<R>

    public class StreamDecorator<R>
    extends java.lang.Object
    implements java.util.stream.Stream<R>
    The StreamDecorator wraps a Java Stream and registers a closeHandler which is passed further to any resulting Stream. The goal of the StreamDecorator is to close the underlying Stream upon calling a terminal operation.
    Since:
    5.4
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.stream.Stream

        java.util.stream.Stream.Builder<T extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      StreamDecorator​(java.util.stream.Stream<R> delegate, java.lang.Runnable closeHandler)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allMatch​(java.util.function.Predicate<? super R> predicate)  
      boolean anyMatch​(java.util.function.Predicate<? super R> predicate)  
      void close()  
      <R1> R1 collect​(java.util.function.Supplier<R1> supplier, java.util.function.BiConsumer<R1,​? super R> accumulator, java.util.function.BiConsumer<R1,​R1> combiner)  
      <R1,​A>
      R1
      collect​(java.util.stream.Collector<? super R,​A,​R1> collector)  
      long count()  
      java.util.stream.Stream<R> distinct()  
      java.util.stream.Stream<R> dropWhile​(java.util.function.Predicate<? super R> predicate)  
      java.util.stream.Stream<R> filter​(java.util.function.Predicate<? super R> predicate)  
      java.util.Optional<R> findAny()  
      java.util.Optional<R> findFirst()  
      <R1> java.util.stream.Stream<R1> flatMap​(java.util.function.Function<? super R,​? extends java.util.stream.Stream<? extends R1>> mapper)  
      java.util.stream.DoubleStream flatMapToDouble​(java.util.function.Function<? super R,​? extends java.util.stream.DoubleStream> mapper)  
      java.util.stream.IntStream flatMapToInt​(java.util.function.Function<? super R,​? extends java.util.stream.IntStream> mapper)  
      java.util.stream.LongStream flatMapToLong​(java.util.function.Function<? super R,​? extends java.util.stream.LongStream> mapper)  
      void forEach​(java.util.function.Consumer<? super R> action)  
      void forEachOrdered​(java.util.function.Consumer<? super R> action)  
      boolean isParallel()  
      java.util.Iterator<R> iterator()  
      java.util.stream.Stream<R> limit​(long maxSize)  
      <R1> java.util.stream.Stream<R1> map​(java.util.function.Function<? super R,​? extends R1> mapper)  
      java.util.stream.DoubleStream mapToDouble​(java.util.function.ToDoubleFunction<? super R> mapper)  
      java.util.stream.IntStream mapToInt​(java.util.function.ToIntFunction<? super R> mapper)  
      java.util.stream.LongStream mapToLong​(java.util.function.ToLongFunction<? super R> mapper)  
      java.util.Optional<R> max​(java.util.Comparator<? super R> comparator)  
      java.util.Optional<R> min​(java.util.Comparator<? super R> comparator)  
      boolean noneMatch​(java.util.function.Predicate<? super R> predicate)  
      java.util.stream.Stream<R> onClose​(java.lang.Runnable closeHandler)  
      java.util.stream.Stream<R> parallel()  
      java.util.stream.Stream<R> peek​(java.util.function.Consumer<? super R> action)  
      java.util.Optional<R> reduce​(java.util.function.BinaryOperator<R> accumulator)  
      R reduce​(R identity, java.util.function.BinaryOperator<R> accumulator)  
      <U> U reduce​(U identity, java.util.function.BiFunction<U,​? super R,​U> accumulator, java.util.function.BinaryOperator<U> combiner)  
      java.util.stream.Stream<R> sequential()  
      java.util.stream.Stream<R> skip​(long n)  
      java.util.stream.Stream<R> sorted()  
      java.util.stream.Stream<R> sorted​(java.util.Comparator<? super R> comparator)  
      java.util.Spliterator<R> spliterator()  
      java.util.stream.Stream<R> takeWhile​(java.util.function.Predicate<? super R> predicate)  
      java.lang.Object[] toArray()  
      <A> A[] toArray​(java.util.function.IntFunction<A[]> generator)  
      java.util.stream.Stream<R> unordered()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StreamDecorator

        public StreamDecorator​(java.util.stream.Stream<R> delegate,
                               java.lang.Runnable closeHandler)
    • Method Detail

      • filter

        public java.util.stream.Stream<R> filter​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        filter in interface java.util.stream.Stream<R>
      • map

        public <R1> java.util.stream.Stream<R1> map​(java.util.function.Function<? super R,​? extends R1> mapper)
        Specified by:
        map in interface java.util.stream.Stream<R>
      • mapToInt

        public java.util.stream.IntStream mapToInt​(java.util.function.ToIntFunction<? super R> mapper)
        Specified by:
        mapToInt in interface java.util.stream.Stream<R>
      • mapToLong

        public java.util.stream.LongStream mapToLong​(java.util.function.ToLongFunction<? super R> mapper)
        Specified by:
        mapToLong in interface java.util.stream.Stream<R>
      • mapToDouble

        public java.util.stream.DoubleStream mapToDouble​(java.util.function.ToDoubleFunction<? super R> mapper)
        Specified by:
        mapToDouble in interface java.util.stream.Stream<R>
      • flatMap

        public <R1> java.util.stream.Stream<R1> flatMap​(java.util.function.Function<? super R,​? extends java.util.stream.Stream<? extends R1>> mapper)
        Specified by:
        flatMap in interface java.util.stream.Stream<R>
      • flatMapToInt

        public java.util.stream.IntStream flatMapToInt​(java.util.function.Function<? super R,​? extends java.util.stream.IntStream> mapper)
        Specified by:
        flatMapToInt in interface java.util.stream.Stream<R>
      • flatMapToLong

        public java.util.stream.LongStream flatMapToLong​(java.util.function.Function<? super R,​? extends java.util.stream.LongStream> mapper)
        Specified by:
        flatMapToLong in interface java.util.stream.Stream<R>
      • flatMapToDouble

        public java.util.stream.DoubleStream flatMapToDouble​(java.util.function.Function<? super R,​? extends java.util.stream.DoubleStream> mapper)
        Specified by:
        flatMapToDouble in interface java.util.stream.Stream<R>
      • distinct

        public java.util.stream.Stream<R> distinct()
        Specified by:
        distinct in interface java.util.stream.Stream<R>
      • sorted

        public java.util.stream.Stream<R> sorted()
        Specified by:
        sorted in interface java.util.stream.Stream<R>
      • sorted

        public java.util.stream.Stream<R> sorted​(java.util.Comparator<? super R> comparator)
        Specified by:
        sorted in interface java.util.stream.Stream<R>
      • peek

        public java.util.stream.Stream<R> peek​(java.util.function.Consumer<? super R> action)
        Specified by:
        peek in interface java.util.stream.Stream<R>
      • limit

        public java.util.stream.Stream<R> limit​(long maxSize)
        Specified by:
        limit in interface java.util.stream.Stream<R>
      • skip

        public java.util.stream.Stream<R> skip​(long n)
        Specified by:
        skip in interface java.util.stream.Stream<R>
      • forEach

        public void forEach​(java.util.function.Consumer<? super R> action)
        Specified by:
        forEach in interface java.util.stream.Stream<R>
      • forEachOrdered

        public void forEachOrdered​(java.util.function.Consumer<? super R> action)
        Specified by:
        forEachOrdered in interface java.util.stream.Stream<R>
      • toArray

        public java.lang.Object[] toArray()
        Specified by:
        toArray in interface java.util.stream.Stream<R>
      • toArray

        public <A> A[] toArray​(java.util.function.IntFunction<A[]> generator)
        Specified by:
        toArray in interface java.util.stream.Stream<R>
      • reduce

        public R reduce​(R identity,
                        java.util.function.BinaryOperator<R> accumulator)
        Specified by:
        reduce in interface java.util.stream.Stream<R>
      • reduce

        public java.util.Optional<R> reduce​(java.util.function.BinaryOperator<R> accumulator)
        Specified by:
        reduce in interface java.util.stream.Stream<R>
      • reduce

        public <U> U reduce​(U identity,
                            java.util.function.BiFunction<U,​? super R,​U> accumulator,
                            java.util.function.BinaryOperator<U> combiner)
        Specified by:
        reduce in interface java.util.stream.Stream<R>
      • collect

        public <R1> R1 collect​(java.util.function.Supplier<R1> supplier,
                               java.util.function.BiConsumer<R1,​? super R> accumulator,
                               java.util.function.BiConsumer<R1,​R1> combiner)
        Specified by:
        collect in interface java.util.stream.Stream<R>
      • collect

        public <R1,​A> R1 collect​(java.util.stream.Collector<? super R,​A,​R1> collector)
        Specified by:
        collect in interface java.util.stream.Stream<R>
      • min

        public java.util.Optional<R> min​(java.util.Comparator<? super R> comparator)
        Specified by:
        min in interface java.util.stream.Stream<R>
      • max

        public java.util.Optional<R> max​(java.util.Comparator<? super R> comparator)
        Specified by:
        max in interface java.util.stream.Stream<R>
      • count

        public long count()
        Specified by:
        count in interface java.util.stream.Stream<R>
      • anyMatch

        public boolean anyMatch​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        anyMatch in interface java.util.stream.Stream<R>
      • allMatch

        public boolean allMatch​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        allMatch in interface java.util.stream.Stream<R>
      • noneMatch

        public boolean noneMatch​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        noneMatch in interface java.util.stream.Stream<R>
      • findFirst

        public java.util.Optional<R> findFirst()
        Specified by:
        findFirst in interface java.util.stream.Stream<R>
      • findAny

        public java.util.Optional<R> findAny()
        Specified by:
        findAny in interface java.util.stream.Stream<R>
      • iterator

        public java.util.Iterator<R> iterator()
        Specified by:
        iterator in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • spliterator

        public java.util.Spliterator<R> spliterator()
        Specified by:
        spliterator in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • isParallel

        public boolean isParallel()
        Specified by:
        isParallel in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • sequential

        public java.util.stream.Stream<R> sequential()
        Specified by:
        sequential in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • parallel

        public java.util.stream.Stream<R> parallel()
        Specified by:
        parallel in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • unordered

        public java.util.stream.Stream<R> unordered()
        Specified by:
        unordered in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • onClose

        public java.util.stream.Stream<R> onClose​(java.lang.Runnable closeHandler)
        Specified by:
        onClose in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.util.stream.BaseStream<R,​java.util.stream.Stream<R>>
      • takeWhile

        public java.util.stream.Stream<R> takeWhile​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        takeWhile in interface java.util.stream.Stream<R>
      • dropWhile

        public java.util.stream.Stream<R> dropWhile​(java.util.function.Predicate<? super R> predicate)
        Specified by:
        dropWhile in interface java.util.stream.Stream<R>