@MCRCommand(syntax = "migrate urn granular to service id {0}", help = "Used to migrate urn granular to MyCoRe-PI. " + "{0} should be your granular service id.") public static void migrateURNGranularToServiceID(String serviceID) { Session session = MCRHIBConnection.instance().getSession(); MCRXMLMetadataManager.instance().listIDsOfType("derivate").forEach(derivateID -> { MCRDerivate derivate = MCRMetadataManager.retrieveMCRDerivate(MCRObjectID.getInstance(derivateID)); String urn = derivate.getDerivate().getURN(); if (urn != null) { LOGGER.info("Found URN in :{}", derivateID); MCRPI derivatePI = new MCRPI(urn, MCRDNBURN.TYPE, derivateID, "", serviceID, new Date()); if (MCRPIManager.getInstance().exist(derivatePI)) { LOGGER.warn("PI-Entry for {} already exist!", urn); } else { session.save(derivatePI); derivate.getUrnMap().forEach((file, fileURN) -> { MCRPI filePI = new MCRPI(fileURN, MCRDNBURN.TYPE, derivateID, file, serviceID, new Date()); if (MCRPIManager.getInstance().exist(filePI)) { LOGGER.warn("PI-Entry for {} already exist!", fileURN); } else { session.save(fileURN); } }); } } }); }