private boolean canDisseminate(ItemIdentifier itemIdentifier, MetadataFormat format) { return !format.hasCondition() || format.getCondition().getFilter(getRepository().getFilterResolver()).isItemShown(itemIdentifier); } }
ListIdentifiers result = new ListIdentifiers(); if (parameters.hasSet() && !getRepository().getSetRepository().supportSets()) throw new DoesNotSupportSetsException(); int length = getRepository().getConfiguration().getMaxListIdentifiers(); int offset = getOffset(parameters); ListItemIdentifiersResult listItemIdentifiersResult; parameters.getMetadataPrefix()); } else { if (!getRepository().getSetRepository().exists(parameters.getSet()) && !getContext().hasSet(parameters.getSet())) throw new NoMatchesException(); getRepository().getConfiguration().getMaxListIdentifiers()); result.withResumptionToken(resumptionTokenHelper.resolve(listItemIdentifiersResult.hasMore()));
private Header createHeader(OAICompiledRequest parameters, ItemIdentifier itemIdentifier) throws BadArgumentException, OAIException, NoMetadataFormatsException { MetadataFormat format = getContext().formatForPrefix(parameters .getMetadataPrefix()); if (!itemIdentifier.isDeleted() && !canDisseminate(itemIdentifier, format)) throw new InternalOAIException("The item repository is currently providing items which cannot be disseminated with format "+format.getPrefix()); Header header = new Header(); header.withDatestamp(itemIdentifier.getDatestamp()); header.withIdentifier(itemIdentifier.getIdentifier()); if (itemIdentifier.isDeleted()) header.withStatus(Header.Status.DELETED); for (Set set : getContext().getSets()) if (set.getCondition().getFilter(getRepository().getFilterResolver()).isItemShown(itemIdentifier)) header.withSetSpec(set.getSpec()); for (Set set : itemIdentifier.getSets()) header.withSetSpec(set.getSpec()); return header; }