use of org.mycore.oai.pmh.MetadataFormat in project mycore by MyCoRe-Org.
the class MCROAIAdapter method getMetadataFormatMap.
protected Map<String, MetadataFormat> getMetadataFormatMap() {
Map<String, MetadataFormat> metdataFormatMap = new HashMap<>();
String formats = this.config.getString(getConfigPrefix() + "MetadataFormats", "");
StringTokenizer st = new StringTokenizer(formats, ", ");
while (st.hasMoreTokens()) {
String format = st.nextToken();
String namespaceURI = this.config.getString(PREFIX + "MetadataFormat." + format + ".Namespace");
String schema = this.config.getString(PREFIX + "MetadataFormat." + format + ".Schema");
metdataFormatMap.put(format, new MetadataFormat(format, namespaceURI, schema));
}
return metdataFormatMap;
}
use of org.mycore.oai.pmh.MetadataFormat in project mycore by MyCoRe-Org.
the class MCROAISearchManager method getRecordListParallel.
private OAIDataList<Record> getRecordListParallel(MCROAISearcher searcher, MCROAIResult result) {
List<Header> headerList = result.list();
int listSize = headerList.size();
Record[] records = new Record[listSize];
@SuppressWarnings("rawtypes") CompletableFuture[] futures = new CompletableFuture[listSize];
MetadataFormat metadataFormat = searcher.getMetadataFormat();
MCRSession mcrSession = MCRSessionMgr.getCurrentSession();
for (int i = 0; i < listSize; i++) {
Header header = headerList.get(i);
int resultIndex = i;
MCRTransactionableRunnable r = new MCRTransactionableRunnable(() -> records[resultIndex] = this.objManager.getRecord(header, metadataFormat), mcrSession);
CompletableFuture<Void> future = CompletableFuture.runAsync(r, executorService);
futures[i] = future;
}
CompletableFuture.allOf(futures).join();
OAIDataList<Record> recordList = new OAIDataList<>();
recordList.addAll(Arrays.asList(records));
return recordList;
}
Aggregations