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)); } } } }
public MCRObjectID setID(String projectID, int id) { MCRObjectID objID = MCRObjectID.getInstance(MCRObjectID.formatID(projectID, MODS_OBJECT_TYPE, id)); object.setId(objID); return objID; }
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 static MCRObjectID saveAsMyCoReObject(String projectID, Element modsRoot) throws MCRActiveLinkException, MCRPersistenceException, MCRAccessException { MCRObject mcrObject = MCRMODSWrapper.wrapMODSDocument(modsRoot, projectID); mcrObject.setId(MCRObjectID.getNextFreeId(mcrObject.getId().getBase())); MCRMetadataManager.create(mcrObject); return mcrObject.getId(); }
protected static void checkObject(String objectID) throws SwordError { if (objectID == null) { throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_BAD_REQUEST, "Could not extract ObjectID from IRI."); } if (!MCRMetadataManager.exists(MCRObjectID.getInstance(objectID))) { throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_NOT_FOUND, "The requested object " + objectID + " does not exist!"); } }
@MCRCommand(syntax = "update all PI of object {0}", help = "Triggers the update method of every Object!") public static void updateObject(String objectIDString) { MCRObjectID objectID = MCRObjectID.getInstance(objectIDString); MCRObject object = MCRMetadataManager.retrieveMCRObject(objectID); MCRPersistentIdentifierEventHandler.updateObject(object); }
/** * 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; }
@Override public boolean shareableMetadataChanged(MCRObject oldVersion, MCRObject newVersion) { final MCRObjectMetadata md = newVersion.getMetadata(); final MCRObjectMetadata mdold = oldVersion.getMetadata(); //if any metadata changed we need to update children boolean metadataChanged = !MCRXMLHelper.deepEqual(md.createXML(), mdold.createXML()); if (!metadataChanged) { LOGGER.info("Metadata did not change on update of {}", newVersion.getId()); } return metadataChanged; }
public static MCRObject getMcrObjectForDerivateID(String requestDerivateID) { final MCRObjectID objectID = MCRObjectID.getInstance(MCRXMLFunctions.getMCRObjectID(requestDerivateID)); return (MCRObject) MCRMetadataManager.retrieve(objectID); }
public String getServiceFlag(String type) { MCRObjectService os = object.getService(); return (os.isFlagTypeSet(type) ? os.getFlags(type).get(0) : null); }
public void setServiceFlag(String type, String value) { MCRObjectService os = object.getService(); if (os.isFlagTypeSet(type)) { os.removeFlags(type); } if ((value != null) && !value.trim().isEmpty()) { os.addFlag(type, value.trim()); } }
/** * @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; }
protected void setObjectId(final String mcrObjectId) { this.mcrObjectId = MCRObjectID.getInstance(mcrObjectId); }
private MCRObject buildMCRObject(Element publicationXML, String projectID) { MCRObject obj = new MCRObject(new Document(publicationXML)); MCRMODSWrapper wrapper = new MCRMODSWrapper(obj); wrapper.setServiceFlag("status", STATUS_FLAG); MCRObjectID oid = MCRObjectID.getNextFreeId(projectID, "mods"); obj.setId(oid); return obj; }
private BiConsumer<Supplier<String>, MCRPath> createFileMetadata(MCRDerivate deriv) { return (urnSup, path) -> deriv.getDerivate().getOrCreateFileMetadata(path, urnSup.get()); }
private static void copyServiceDateToProperty(MCRBase obj, JsonObject jsonObj, String dateType, String propertyName) { Optional.ofNullable(obj.getService().getDate(dateType)) .map(Date::toInstant) .map(Instant::toString) .ifPresent(d -> jsonObj.addProperty(propertyName, d)); }
private static void validateDerivateRelation(MCRObjectID mcrId, MCRObjectID derId) { MCRObjectID objectId = MCRMetadataManager.getObjectId(derId, 1, TimeUnit.DAYS); if (objectId != null && !mcrId.equals(objectId)) { objectId = MCRMetadataManager.getObjectId(derId, 0, TimeUnit.SECONDS); } if (mcrId.equals(objectId)) { return; } throw new NotFoundException(objectId == null ? "MCRDerivate " + derId + " not found" : "MCRDerivate " + derId + " not found in MCRObject " + mcrId); }
private void removeAccessKeys(final MCRBase obj) { LOGGER.debug("Remove access keys from pipe"); for (MIRAccessKeyPair.ServiceFlagType type : MIRAccessKeyPair.ServiceFlagType.values()) { obj.getService().removeFlags(type.value()); } } }
public MCRMODSWrapper() { this(new MCRObject()); }