use of com.lyncode.xoai.dataprovider.exceptions.CannotDisseminateRecordException in project dataverse by IQSS.
the class XgetRecordHandler method handle.
@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;
}
Aggregations