public ListRecordsHandler(Context context, Repository repository) { super(context, repository); this.itemRepositoryHelper = new ItemRepositoryHelper(getRepository().getItemRepository()); this.setRepositoryHelper = new SetRepositoryHelper(getRepository().getSetRepository()); }
@Override public ListRecords handle(OAICompiledRequest parameters) throws OAIException, HandlerException {ListRecords res = new ListRecords(); int length = getRepository().getConfiguration().getMaxListRecords(); if (parameters.hasSet() && !getRepository().getSetRepository().supportSets()) throw new DoesNotSupportSetsException(); int offset = getOffset(parameters); ListItemsResults result; if (!parameters.hasSet()) { if (parameters.hasFrom() && !parameters.hasUntil()) result = itemRepositoryHelper.getItems(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getFrom()); else if (!parameters.hasFrom() && parameters.hasUntil()) result = itemRepositoryHelper.getItemsUntil(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getUntil()); else if (parameters.hasFrom() && parameters.hasUntil()) result = itemRepositoryHelper.getItems(getContext(), offset, length, parameters.getMetadataPrefix(), parameters.getFrom(), parameters.getUntil()); else result = itemRepositoryHelper.getItems(getContext(), offset, length, parameters.getMetadataPrefix()); } else { if (!setRepositoryHelper.exists(getContext(), parameters.getSet())) throw new NoMatchesException(); if (parameters.hasFrom() && !parameters.hasUntil()) result = itemRepositoryHelper.getItems(getContext(), offset,
private Record createRecord(OAICompiledRequest parameters, Item item) throws BadArgumentException, CannotDisseminateRecordException, OAIException, NoMetadataFormatsException, CannotDisseminateFormatException { MetadataFormat format = getContext().formatForPrefix(parameters.getMetadataPrefix()); Header header = new Header(); Record record = new Record().withHeader(header); for (Set set : itemHelperWrap.getSets(getContext(), getRepository().getFilterResolver())) header.withSetSpec(set.getSpec()); if (item.isDeleted()) Metadata metadata = null; try { if (getContext().hasTransformer()) { metadata = new Metadata(toPipeline(item) .apply(getContext().getTransformer()) .apply(format.getTransformer()) .process()); } else { metadata = new Metadata(toPipeline(item) .apply(format.getTransformer()) .process());
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(); }
break; case ListRecords: response.withVerb(listRecordsHandler.handle(parameters)); break;