/** * Creates a new empty {@link Page}. * * @return * @since 2.0 */ static <T> Page<T> empty() { return empty(Pageable.unpaged()); }
@SuppressWarnings("unchecked") public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) { Class<T> type = entityInformation.getJavaType(); AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> revisionNumbers = getRevisions((ID) id, (Class<T>) type, reader); boolean isDescending = RevisionSort.getRevisionDirection(pageable.getSort()).isDescending(); if (isDescending) { Collections.reverse(revisionNumbers); } if ( pageable.getOffset() >= revisionNumbers.size()) { return Page.empty(pageable); } long upperBound = pageable.getOffset() + pageable.getPageSize(); upperBound = upperBound > revisionNumbers.size() ? revisionNumbers.size() : upperBound; List<? extends Number> subList = revisionNumbers.subList(toInt(pageable.getOffset()), toInt(upperBound)); Revisions<N, T> revisions = getEntitiesForRevisions((List<N>) subList, id, reader); revisions = isDescending ? revisions.reverse() : revisions; return new PageImpl<Revision<N, T>>(revisions.getContent(), pageable, revisionNumbers.size()); }