@Override public void setMetadata(DescriptionMetadata<OaiDcType> data, String message) throws DigitalObjectException { OaiDcType dc = data.getData(); if (dc == null) { dc = createDefautDc(); } write(dc, data.getTimestamp(), message); }
@Override public DescriptionMetadata<OaiDcType> getMetadata() throws DigitalObjectException { Source src = getDataAsSource(); DescriptionMetadata<OaiDcType> dm = new DescriptionMetadata<OaiDcType>(); dm.setPid(object.getPid()); dm.setTimestamp(editor.getLastModified()); // dm.setEditor(editorId); OaiDcType dc = DcUtils.unmarshal(src, OaiDcType.class); dm.setData(dc); return dm; }
@Override public void setMetadataAsXml(DescriptionMetadata<String> xml, String message) throws DigitalObjectException { OaiDcType dc = null; if (xml.getData() != null) { dc = DcUtils.unmarshal(xml.getData(), OaiDcType.class); } if (dc == null) { dc = createDefautDc(); } write(dc, xml.getTimestamp(), message); }
@Override public void setDissemination(DisseminationInput input, String message) throws DigitalObjectException { defaultHandler.setDissemination(input, message); MetadataHandler<OaiDcType> metadata = handler.metadata(); DescriptionMetadata<OaiDcType> dm = metadata.getMetadata(); OaiDcType data = dm.getData(); List<ElementType> titles = data.getTitles(); titles.clear(); String filename = input.getFilename(); titles.add(new ElementType(filename, null)); List<ElementType> formats = data.getFormats(); formats.clear(); formats.add(new ElementType(input.getMime().toString(), null)); metadata.setMetadata(dm, message); }
@Override public void setMetadataAsJson(DescriptionMetadata<String> json, String message) throws DigitalObjectException { String data = json.getData(); OaiDcType dc; if (data == null) { dc = createDefautDc(); } else { ObjectMapper jsMapper = JsonUtils.defaultObjectMapper(); try { dc = jsMapper.readValue(data, OaiDcType.class); } catch (Exception ex) { throw new DigitalObjectException( object.getPid(), null, editor.getProfile().getDsID(), null, ex); } } write(dc, json.getTimestamp(), message); }
@Override public DescriptionMetadata<String> getMetadataAsXml() throws DigitalObjectException { DescriptionMetadata<OaiDcType> dm = getMetadata(); OaiDcType dc = dm.getData(); DescriptionMetadata<String> result = new DescriptionMetadata<String>(); result.setPid(dm.getPid()); result.setBatchId(dm.getBatchId()); String xml = DcUtils.toXml(dc, true); result.setData(xml); return result; }