package ch.powerunit.collector.lang; import java.util.List; import java.util.stream.Stream; /** * DSL step of the builder of {@link java.util.stream.Collector Collector * tester}. * * @author borettim * @param <T> * the input type of the {@link java.util.stream.Collector Collector} * . * @param <A> * the accumulator type of the {@link java.util.stream.Collector * Collector}. * @param <R> * the return type of the {@link java.util.stream.Collector * Collector}. * @since 0.4.0 */ public interface CollectorTesterDSL3<T, A, R> { /** * Specify a sample input Stream to be used to test the * {@link java.util.stream.Collector Collector}. * * @param input * the sample input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withInput(Stream<T> input); /** * Specify a sample input List that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param input * the sample input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromList(List<T> input); /** * Specify a sample input List that will be transformed as parallelStream * and be used as a sample to test the {@link java.util.stream.Collector * Collector}. * * @param input * the sample input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withParallelStreamFromList(List<T> input); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param input * the sample input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T... input); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param first * the first input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T first); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param first * the first input. * @param second * the second input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T first, T second); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param first * the first input. * @param second * the second input. * @param third * the third input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T first, T second, T third); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param first * the first input. * @param second * the second input. * @param third * the third input. * @param fourth * the fourth input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T first, T second, T third, T fourth); /** * Specify a sample input array that will be transformed as stream and be * used as a sample to test the {@link java.util.stream.Collector Collector} * . * * @param first * the first input. * @param second * the second input. * @param third * the third input. * @param fourth * the fourth input. * @param fifth * the fifth input. * @return {@link CollectorTesterDSL2 the next step of the DSL} */ CollectorTesterDSL2<T, A, R> withStreamFromArray(T first, T second, T third, T fourth, T fifth); }