Subversion Repositories SmartDukaan

Rev

Rev 23663 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
22139 amit.gupta 1
package com.spice.profitmandi.web.util;
2
 
23663 amit.gupta 3
import java.util.function.BiConsumer;
4
import java.util.function.Function;
5
import java.util.stream.Collector;
6
import java.util.stream.Stream;
7
 
22139 amit.gupta 8
public class Utils {
23663 amit.gupta 9
 
10
	static <T, U, A, R> Collector<T, ?, R> flatMapping(Function<? super T, ? extends Stream<? extends U>> mapper,
11
			Collector<? super U, A, R> downstream) {
12
 
13
		BiConsumer<A, ? super U> acc = downstream.accumulator();
14
		return Collector.of(downstream.supplier(), (a, t) -> {
15
			try (Stream<? extends U> s = mapper.apply(t)) {
16
				if (s != null)
17
					s.forEachOrdered(u -> acc.accept(a, u));
18
			}
19
		}, downstream.combiner(), downstream.finisher(),
20
				downstream.characteristics().toArray(new Collector.Characteristics[0]));
21
	}
22139 amit.gupta 22
}