@Override public Item getItem(String identifier) throws IdDoesNotExistException, OAIException { for (InMemoryItem item : this.list) { if (item.getIdentifier().equals(identifier)) return item; } throw new IdDoesNotExistException(); }
@Override public Item getItem(String identifier) throws IdDoesNotExistException { if (identifier == null) { throw new IdDoesNotExistException(); } String parts[] = identifier.split(Pattern.quote(":")); if (parts.length == 3) { try { SolrQuery params = new SolrQuery("item.handle:" + parts[2]); return new DSpaceSolrItem(DSpaceSolrSearch.querySingle(server, params)); } catch (SolrSearchEmptyException ex) { throw new IdDoesNotExistException(ex); } } throw new IdDoesNotExistException(); }
@Override public Item getItem(String identifier) throws IdDoesNotExistException, OAIException { logger.fine("getItem; calling findOaiRecordsByGlobalId, identifier " + identifier); List<OAIRecord> oaiRecords = recordService.findOaiRecordsByGlobalId(identifier); if (oaiRecords != null && !oaiRecords.isEmpty()) { Xitem xoaiItem = null; for (OAIRecord record : oaiRecords) { if (xoaiItem == null) { Dataset dataset = datasetService.findByGlobalId(record.getGlobalId()); if (dataset != null) { xoaiItem = new Xitem(record).withDataset(dataset); } } else { // Adding extra set specs to the XOAI Item, if this record // is part of multiple sets: if (!StringUtil.isEmpty(record.getSetName())) { xoaiItem.getSets().add(new Set(record.getSetName())); } } } if (xoaiItem != null) { return xoaiItem; } } throw new IdDoesNotExistException(); }
@Override public GetRecord handle(OAICompiledRequest parameters) throws OAIException, HandlerException { MetadataFormat format = getContext().formatForPrefix(parameters.getMetadataPrefix()); Item item = getRepository().getItemRepository().getItem(parameters.getIdentifier()); if (getContext().hasCondition() && !getContext().getCondition().getFilter(getRepository().getFilterResolver()).isItemShown(item)) throw new IdDoesNotExistException("This context does not include this item"); if (format.hasCondition() && !format.getCondition().getFilter(getRepository().getFilterResolver()).isItemShown(item)) throw new CannotDisseminateRecordException("Format not applicable to this item"); Xrecord record = this.createRecord(parameters, item); GetRecord result = new XgetRecord(record); return result; }
throw new IdDoesNotExistException("This context does not include this item");