Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Page getFilteredResults(int pageSize, Result result) {
- // stored results
- List<Result> results = new ArrayList<>();
- // initial query
- Page currentPage = queryService.query(pageSize, null);
- results.addAll(currentPage.getResults());
- // get all results
- while(currentPage.hasMore()) {
- // get last result
- Results lastResult = currentPage.getResults().get(currentPage.getResults().size() - 1);
- currentPage = queryService.query(pageSize, lastResult);
- results.addAll(currentPage.getResults());
- }
- // filter through results
- List<Result> filteredResults =
- results
- .stream()
- .filter(result -> test(result))
- .collect(Collectors.toList());
- // paginate filtered results
- List<Result> paginatedFilteredResults =
- filteredResults
- .stream()
- .limit(pageSize)
- .collect(Collectors.toList());
- return new Page(paginatedFilteredResults, filteredResults.size() > paginatedFilteredResults.size());
- }
Add Comment
Please, Sign In to add comment