@Override public <O> O reduce(Reducer<O, Tuple<A, B>> reducer, O initial) { return tupleFlow.reduce(reducer, initial); }
@Override public <O> O reduce(Reducer<O, Tuple<A, B>> reducer, O initial) { return tupleFlow.reduce(reducer, initial); }
private PropertyWriter newPropertyWriter(final PrintWriter writer, Iterable<String> names) final int maxPropertyNameLength = F.flow(names).map(STRING_TO_LENGTH).reduce(MAX, 0);
@Test public void reduce_on_empty_flow() { Flow<Integer> flow = F.emptyFlow(); Integer initial = 99; assertSame(flow.reduce(new Reducer<Integer, Integer>() { @Override public Integer reduce(Integer accumulator, Integer value) { unreachable(); return null; } }, initial), initial); }
@Override public <X> Flow<X> mapcat(Mapper<T, Flow<X>> mapper) { Flow<Flow<X>> flows = map(mapper); if (flows.isEmpty()) return F.emptyFlow(); return flows.rest().reduce(new Reducer<Flow<X>, Flow<X>>() { @Override public Flow<X> reduce(Flow<X> accumulator, Flow<X> value) { return accumulator.concat(value); } }, flows.first()); }
@Test public void general_flow_reduce() { int total = F.flow("Mary", "had", "a", "little", "lamb").map(stringToLength).reduce(F.SUM_INTS, 0); assertEquals(total, 18); }
@Override public <X> Flow<X> mapcat(Mapper<T, Flow<X>> mapper) { Flow<Flow<X>> flows = map(mapper); if (flows.isEmpty()) return F.emptyFlow(); return flows.rest().reduce(new Reducer<Flow<X>, Flow<X>>() { @Override public Flow<X> reduce(Flow<X> accumulator, Flow<X> value) { return accumulator.concat(value); } }, flows.first()); }
public void onRecomputeTotals() { totals = new PageCatalogTotals(); Flow<Page> pages = F.flow(getPages()); totals.loadedPages = pages.count(); totals.definedPages = getPageNames().size(); totals.uniquePageNames = pages.map(new Mapper<Page, String>() { public String map(Page element) { return element.getName(); } }).toSet().size(); totals.components = pages.reduce(new Reducer<Integer, Page>() { public Integer reduce(Integer accumulator, Page element) { return accumulator + element.getStats().componentCount; } }, 0); Set<String> selectorIds = pages.map(new Mapper<Page, String>() { public String map(Page element) { return element.getSelector().toShortString(); } }).toSet(); totals.selectors = InternalUtils.joinSorted(selectorIds); }
@Test public void array_flow_reduce() { int total = F.flow(F.flow("Mary", "had", "a", "little", "lamb").map(stringToLength).toList()).reduce( F.SUM_INTS, 0); assertEquals(total, 18); }