public void addMetadata(MCRObject object, DepositReceipt receipt) throws SwordError {
final MCRBaseContent mcrBaseContent = new MCRBaseContent(object);
final MCRContent mcrContent;
try {
mcrContent = XSL_MODS_DC_TRANSFORMER.transform(mcrBaseContent);
} catch (IOException e) {
throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"Error while transforming mods2dc!", e);
}
final List<Element> elementList;
try {
elementList = mcrContent.asXML().getRootElement().getChildren();
} catch (JDOMException | IOException | SAXException e) {
throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"Error getting transform result of mods to dc transformation!", e);
}
elementList.stream()
.filter(dcElement -> dcElement.getText().trim().length() > 0)
.forEach(dcElement -> {
receipt.addDublinCore(dcElement.getName(), dcElement.getText().trim());
});
MCRSwordUtil.addDatesToEntry(receipt.getWrappedEntry(), object);
}