public static <T, R extends ResultPage<T>> BinaryOperator<R> reducer(
            final Function<List<T>, R> resultPageFactory,
            final Class<T> itemType) {
        return (final R resultPage1, final R resultPage2) -> {
            final List<T> combinedList = new ArrayList<>();
            combinedList.addAll(resultPage1.getValues());
            combinedList.addAll(resultPage2.getValues());
            return resultPageFactory.apply(combinedList);
        };
    }
Creates a collector that builds a sub class of a ResultPage, e.g.
.collect(ListConfigResponse.collector(ListConfigResponse::new));
stroom-util-shared/src/main/java/stroom/util/shared/ResultPage.java