private void write(OaiDcType dc, long timestamp, String message) throws DigitalObjectException { EditorResult result = editor.createResult(); // DO NOT include schemaLocation. Fedora validator does not accept it. DcUtils.marshal(result, dc, false); editor.write(result, timestamp, message); // Label: spec requires identifier + title StringBuilder label = new StringBuilder(); if (!dc.getIdentifiers().isEmpty()) { label.append(dc.getIdentifiers().get(0).getValue()); } if (!dc.getTitles().isEmpty()) { if (label.length() > 0) { label.append(' '); } label.append(dc.getTitles().get(0).getValue()); } String objLabel = label.toString().trim(); object.setLabel(objLabel.isEmpty() ? "?" : objLabel); // DC DcStreamEditor dcEditor = handler.objectMetadata(); DublinCoreRecord dcr = dcEditor.read(); dcr.setDc(dc); dcEditor.write(handler, dcr, message); }