/** * returns true if the given MCRObject can handle MODS metadata * @param obj - the MCRObject * @return true, if mods is supported */ public static boolean isSupported(MCRObject obj) { if (isSupported(obj.getId())) { return true; } return obj.getMetadata() != null && obj.getMetadata().getMetadataElement(DEF_MODS_CONTAINER) != null && obj.getMetadata().getMetadataElement(DEF_MODS_CONTAINER).getElementByName(MODS_CONTAINER) != null; }
/** * @return the mods:mods Element at /metadata/def.modsContainer/modsContainer */ public Element getMODS() { try { MCRMetaXML mx = (MCRMetaXML) (object.getMetadata().getMetadataElement(DEF_MODS_CONTAINER).getElement(0)); for (Content content : mx.getContent()) { if (content instanceof Element) { return (Element) content; } } } catch (NullPointerException | IndexOutOfBoundsException e) { //do nothing } return null; }
public void setMODS(Element mods) { MCRObjectMetadata om = object.getMetadata(); if (om.getMetadataElement(DEF_MODS_CONTAINER) != null) { om.removeMetadataElement(DEF_MODS_CONTAINER); } MCRMetaXML modsContainer = new MCRMetaXML(MODS_CONTAINER, null, 0); List<MCRMetaXML> list = Collections.nCopies(1, modsContainer); MCRMetaElement defModsContainer = new MCRMetaElement(MCRMetaXML.class, DEF_MODS_CONTAINER, false, true, list); om.setMetadataElement(defModsContainer); modsContainer.addContent(mods); }
private void undo(MCRObject obj) { if (oldMappings == null) { obj.getMetadata().removeMetadataElement("mappings"); } else { MCRMetaElement mmap = obj.getMetadata().getMetadataElement("mappings"); for (int i = 0; i < oldMappings.size(); i++) { mmap.addMetaObject(oldMappings.getElement(i)); } } } }
private void createMapping(MCRObject obj) { MCRMetaElement mappings = obj.getMetadata().getMetadataElement("mappings"); if (mappings != null) { oldMappings = mappings.clone();