@Override public ListSets handle(OAICompiledRequest parameters) throws OAIException, HandlerException { ListSets result = new ListSets(); if (!getRepository().getSetRepository().supportSets()) throw new DoesNotSupportSetsException(); int length = getRepository().getConfiguration().getMaxListSets(); ListSetsResult listSetsResult = setRepositoryHelper.getSets(getContext(), getOffset(parameters), length); List<Set> sets = listSetsResult.getResults(); if (sets.isEmpty() && parameters.getResumptionToken().isEmpty()) throw new NoMatchesException(); if (sets.size() > length) sets = sets.subList(0, length); for (Set set : sets) { result.getSets().add(set.toOAIPMH()); } ResumptionToken.Value currentResumptionToken = new ResumptionToken.Value(); if (parameters.hasResumptionToken()) { currentResumptionToken = parameters.getResumptionToken(); } else if (listSetsResult.hasMore()) { currentResumptionToken = parameters.extractResumptionToken(); } ResumptionTokenHelper resumptionTokenHelper = new ResumptionTokenHelper(currentResumptionToken, getRepository().getConfiguration().getMaxListSets()); result.withResumptionToken(resumptionTokenHelper.resolve(listSetsResult.hasMore())); return result; }
ResumptionTokenHelper resumptionTokenHelper = new ResumptionTokenHelper(currentResumptionToken, getRepository().getConfiguration().getMaxListRecords()); res.withResumptionToken(resumptionTokenHelper.resolve(result.hasMore()));
ResumptionTokenHelper resumptionTokenHelper = new ResumptionTokenHelper(currentResumptionToken, getRepository().getConfiguration().getMaxListIdentifiers()); result.withResumptionToken(resumptionTokenHelper.resolve(listItemIdentifiersResult.hasMore()));