public List<AdminArchivedPageRow> build() {
validate();
int skipped = 0;
Integer pageSize = pageRequest.getPageSize();
int startRowIndex = pageRequest.getStartRowIndex();
RepositoryFilter filter = new AssetItemFilter(identity);
List<AdminArchivedPageRow> rowList = new ArrayList<AdminArchivedPageRow>();
while ( iterator.hasNext() && (pageSize == null || rowList.size() < pageSize) ) {
AssetItem archivedAssetItem = iterator.next();
// Filter surplus assets
if ( filter.accept( archivedAssetItem,
"read" ) ) {
// Cannot use AssetItemIterator.skip() as it skips non-filtered
// assets whereas startRowIndex is the index of the
// first displayed asset (i.e. filtered)