public XdataProvider (Context context, Repository repository) { this.repository = repository; this.dateProvider = new UTCDateProvider(); this.identifyHandler = new IdentifyHandler(context, repository); this.listSetsHandler = new ListSetsHandler(context, repository); this.listMetadataFormatsHandler = new ListMetadataFormatsHandler(context, repository); this.listRecordsHandler = new XlistRecordsHandler(context, repository); this.listIdentifiersHandler = new ListIdentifiersHandler(context, repository); //this.getRecordHandler = new GetRecordHandler(context, repository); this.getRecordHandler = new XgetRecordHandler(context, repository); this.errorsHandler = new ErrorHandler(); }
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; }
if (parameters.hasSet() && !getRepository().getSetRepository().supportSets()) throw new DoesNotSupportSetsException(); int length = getRepository().getConfiguration().getMaxListIdentifiers(); int offset = getOffset(parameters); ListItemIdentifiersResult listItemIdentifiersResult; if (!parameters.hasSet()) { if (parameters.hasFrom() && !parameters.hasUntil()) listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiers(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getFrom()); else if (!parameters.hasFrom() && parameters.hasUntil()) listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiersUntil(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getUntil()); else if (parameters.hasFrom() && parameters.hasUntil()) listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiers(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getFrom(), parameters.getUntil()); else listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiers(getContext(), offset, length, parameters.getMetadataPrefix()); } else { if (!getRepository().getSetRepository().exists(parameters.getSet()) && !getContext().hasSet(parameters.getSet())) throw new NoMatchesException(); listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiers(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getSet(), parameters.getFrom()); else if (!parameters.hasFrom() && parameters.hasUntil()) listItemIdentifiersResult = itemRepositoryHelper.getItemIdentifiersUntil(getContext(), offset, length,
break; case ListIdentifiers: response.withVerb(listIdentifiersHandler.handle(parameters)); break; case ListRecords:
private boolean canDisseminate(ItemIdentifier itemIdentifier, MetadataFormat format) { return !format.hasCondition() || format.getCondition().getFilter(getRepository().getFilterResolver()).isItemShown(itemIdentifier); } }
break; case ListIdentifiers: response.withVerb(listIdentifiersHandler.handle(parameters)); break; case ListRecords:
public DataProvider (Context context, Repository repository) { this.repository = repository; this.dateProvider = new UTCDateProvider(); this.identifyHandler = new IdentifyHandler(context, repository); this.listSetsHandler = new ListSetsHandler(context, repository); this.listMetadataFormatsHandler = new ListMetadataFormatsHandler(context, repository); this.listRecordsHandler = new ListRecordsHandler(context, repository); this.listIdentifiersHandler = new ListIdentifiersHandler(context, repository); this.getRecordHandler = new GetRecordHandler(context, repository); this.errorsHandler = new ErrorHandler(); }