/** * Converts the List to PagedList. * @param list list to be converted in to paged list * @param <InnerT> the wrapper inner type * @return the Paged list for the inner type. */ public static <InnerT> PagedList<InnerT> convertToPagedList(List<InnerT> list) { PageImpl<InnerT> page = new PageImpl<>(); page.setItems(list); page.setNextPageLink(null); return new PagedList<InnerT>(page) { @Override public Page<InnerT> nextPage(String nextPageLink) { return null; } }; }
@Override public Page<V> nextPage(String nextPageLink) throws RestException, IOException { Page<U> uPage = uList.nextPage(nextPageLink); final PageImpl<V> vPage = new PageImpl<>(); vPage.setNextPageLink(uPage.nextPageLink()); vPage.setItems(new ArrayList<V>()); loadConvertedList(uPage, vPage); return vPage; } };
/** * Converts the given list of a type to paged list of a different type. * * @param list the list to convert to paged list * @param mapper the mapper to map type in input list to output list * @param <OutT> the type of items in output paged list * @param <InT> the type of items in input paged list * @return the paged list */ public static <OutT, InT> PagedList<OutT> toPagedList(List<InT> list, final Func1<InT, OutT> mapper) { PageImpl<InT> page = new PageImpl<>(); page.setItems(list); page.setNextPageLink(null); PagedList<InT> pagedList = new PagedList<InT>(page) { @Override public Page<InT> nextPage(String nextPageLink) { return null; } }; PagedListConverter<InT, OutT> converter = new PagedListConverter<InT, OutT>() { @Override public Observable<OutT> typeConvertAsync(InT inner) { return Observable.just(mapper.call(inner)); } }; return converter.convert(pagedList); }
final PageImpl<V> vPage = new PageImpl<>(); vPage.setNextPageLink(uPage.nextPageLink()); vPage.setItems(new ArrayList<V>()); loadConvertedList(uPage, vPage); return new PagedList<V>(vPage) { public Page<V> nextPage(String nextPageLink) throws RestException, IOException { Page<U> uPage = uList.nextPage(nextPageLink); final PageImpl<V> vPage = new PageImpl<>(); vPage.setNextPageLink(uPage.nextPageLink()); vPage.setItems(new ArrayList<V>());