@@ -0,0 +1,1711 @@
+package org.textfiledatatools.core;%0A%0Aimport org.textfiledatatools.core.producer.RecordProducer;%0Aimport org.textfiledatatools.core.producer.UncheckedProducerException;%0A%0Aimport java.util.function.Function;%0Aimport java.util.stream.Stream;%0A%0A/**%0A * This class consists of %7B@code static%7D utility methods for operating on record streams.%0A *%0A * @author Mathias Kalb%0A * @since 0.1%0A */%0Apublic final class RecordStreams %7B%0A%0A    private RecordStreams() %7B%0A    %7D%0A%0A    public static Stream%3CRecord%3E emptyStream() %7B%0A        return Stream.empty();%0A    %7D%0A%0A    public static Stream%3CRecord%3E newStream(Record record) %7B%0A        return Stream.of(record);%0A    %7D%0A%0A    public static Stream%3CRecord%3E newStream(Record... records) %7B%0A        return Stream.of(records);%0A    %7D%0A%0A    public static %3CT extends Record%3E Stream%3CT%3E newStream(RecordProducer%3CT%3E recordProducer) throws UncheckedProducerException %7B%0A        return recordProducer.produceStream();%0A    %7D%0A%0A    public static %3CT extends Record%3E Stream%3CT%3E concat(Stream%3CT%3E firstRecordStream, Stream%3CT%3E secondRecordStream) %7B%0A        return Stream.concat(firstRecordStream, secondRecordStream);%0A    %7D%0A%0A    @SafeVarargs%0A    public static %3CT extends Record%3E Stream%3CT%3E concat(Stream%3CT%3E... recordStreams) %7B%0A        // TODO Validate: concatWithFlatMap or concatWithReduce%0A        return concatWithFlatMap(recordStreams);%0A    %7D%0A%0A    @SafeVarargs%0A    static %3CT extends Record%3E Stream%3CT%3E concatWithFlatMap(Stream%3CT%3E... recordStreams) %7B%0A        return Stream.of(recordStreams).flatMap(Function.identity());%0A    %7D%0A%0A    @SafeVarargs%0A    static %3CT extends Record%3E Stream%3CT%3E concatWithReduce(Stream%3CT%3E... recordStreams) %7B%0A        return Stream.of(recordStreams).reduce(Stream.empty(), Stream::concat);%0A    %7D%0A%0A%7D%0A

Add static helper class 'RecordStreams'