/** * Generates link header value based on given {@code page} and uri returned by {@code * uriInfo.getRequestUri()}. * * @param page page to create link header * @return link header value */ protected String createLinkHeader(Page<?> page) { return PagingUtil.createLinkHeader(page, uriInfo.getRequestUri()); }
/** * This method is the same to {@link #createLinkHeader(Page, String, Map, Object...)} except of * receiving multivalued query parameters. */ protected String createLinkHeader( Page<?> page, String method, ListMultimap<String, Object> queryParams, Object... pathParams) { final UriBuilder ub = getServiceContext().getServiceUriBuilder().path(getClass(), method); for (Map.Entry<String, Object> queryParam : queryParams.entries()) { ub.queryParam(queryParam.getKey(), queryParam.getValue()); } return PagingUtil.createLinkHeader(page, ub.build(pathParams)); }
/** * Creates uri from the given parameters and delegates execution to the {@link * PagingUtil#createLinkHeader(Page, URI)} method. * * @param page page to create link header * @param method rest service method name like {@link UriBuilder#path(Class, String) path} * argument * @param queryParams query parameters map, if multiple query params needed then {@link * #createLinkHeader(Page, String, ListMultimap, Object...)} method should be used instead * @param pathParams path param values like {f@link UriBuilder#build(Object...)} method arguments */ protected String createLinkHeader( Page<?> page, String method, Map<String, Object> queryParams, Object... pathParams) { final UriBuilder ub = getServiceContext().getServiceUriBuilder().path(getClass(), method); for (Map.Entry<String, Object> queryParam : queryParams.entrySet()) { ub.queryParam(queryParam.getKey(), queryParam.getValue()); } return PagingUtil.createLinkHeader(page, ub.build(pathParams)); }