protected NotificationTaskTO findNotificationTaskBySender(final String sender) { PagedResult<NotificationTaskTO> tasks = taskService.list(new TaskQuery.Builder().type(TaskType.NOTIFICATION).build()); assertNotNull(tasks); assertFalse(tasks.getResult().isEmpty()); return IterableUtils.find( tasks.getResult(), new Predicate<NotificationTaskTO>() { @Override public boolean evaluate(final NotificationTaskTO task) { return sender.equals(task.getSender()); } }); }
/** * Builds a paged result out of a list of items and additional information. * * @param <T> result type * @param list bare list of items to be returned * @param page current page * @param size requested size * @param totalCount total result size (not considering pagination) * @return paged result */ protected <T extends AbstractBaseBean> PagedResult<T> buildPagedResult( final List<T> list, final int page, final int size, final int totalCount) { PagedResult<T> result = new PagedResult<>(); result.getResult().addAll(list); result.setPage(page); result.setSize(result.getResult().size()); result.setTotalCount(totalCount); UriBuilder builder = uriInfo.getAbsolutePathBuilder(); MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters(); for (Map.Entry<String, List<String>> queryParam : queryParams.entrySet()) { builder.queryParam(queryParam.getKey(), queryParam.getValue().toArray()); } if (result.getPage() > 1) { result.setPrev( builder .replaceQueryParam(PARAM_PAGE, result.getPage() - 1) .replaceQueryParam(PARAM_SIZE, size) .build()); } if ((result.getPage() - 1) * size + result.getSize() < totalCount) { result.setNext( builder .replaceQueryParam(PARAM_PAGE, result.getPage() + 1) .replaceQueryParam(PARAM_SIZE, size) .build()); } return result; }