private PagedResources<?> toEmptyResource(Page<?> page, Class<?> type, Optional<Link> link) { Assert.notNull(page, "Page must must not be null!"); Assert.isTrue(!page.hasContent(), "Page must not have any content!"); Assert.notNull(type, "Type must not be null!"); Assert.notNull(link, "Link must not be null!"); PageMetadata metadata = asPageMetadata(page); EmbeddedWrapper wrapper = wrappers.emptyCollectionOf(type); List<EmbeddedWrapper> embedded = Collections.singletonList(wrapper); return addPaginationLinks(new PagedResources<>(embedded, metadata), page, link); }
private <S, R extends ResourceSupport> PagedResources<R> createResource(Page<S> page, ResourceAssembler<S, R> assembler, Optional<Link> link) { Assert.notNull(page, "Page must not be null!"); Assert.notNull(assembler, "ResourceAssembler must not be null!"); List<R> resources = new ArrayList<>(page.getNumberOfElements()); for (S element : page) { resources.add(assembler.toResource(element)); } PagedResources<R> resource = createPagedResource(resources, asPageMetadata(page), page); return addPaginationLinks(resource, page, link); }