/** * Equivalent to {@code flatMap("flatMap", f)}. * @see #flatMap(String, Function2) */ default <R> Task<R> flatMap(final Function2<T1, T2, Task<R>> f) { return flatMap("flatMap: " + _taskDescriptor.getDescription(f.getClass().getName()), tuple -> f.apply(tuple._1(), tuple._2())); }
return flatMap(desc, tuple -> f.apply(tuple._1(), tuple._2()));
@Test public void testPar2FlatMapDsc() { Task<Integer> task = Task.par(Task.value(1), Task.value(2)).flatMap("test", (a, b) -> Task.value(a + b)); runAndWait("TestTaskFactoryMethods.testPar2FlatMapDsc", task); assertEquals((int)task.get(), 1 + 2); assertEquals(countTasks(task.getTrace()), 2 + 3 + 2); }
@Test public void testPar2FlatMap() { Task<Integer> task = Task.par(Task.value(1), Task.value(2)).flatMap((a, b) -> Task.value(a + b)); runAndWait("TestTaskFactoryMethods.testPar2FlatMap", task); assertEquals((int)task.get(), 1 + 2); assertEquals(countTasks(task.getTrace()), 2 + 3 + 2); }
/** * Equivalent to {@code flatMap("flatMap", f)}. * @see #flatMap(String, Function2) */ default <R> Task<R> flatMap(final Function2<T1, T2, Task<R>> f) { return flatMap("flatMap: " + _taskDescriptor.getDescription(f.getClass().getName()), tuple -> f.apply(tuple._1(), tuple._2())); }
return flatMap(desc, tuple -> f.apply(tuple._1(), tuple._2()));