/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE file at the root of the source * tree and available online at * * https://github.com/keeps/roda */ package org.roda.core.data.utils; import org.roda.core.data.common.RodaConstants; import org.roda.core.data.common.RodaConstants.RODA_TYPE; import org.roda.core.data.v2.ip.metadata.PreservationMetadata.PreservationMetadataType; public final class URNUtils { /** Private empty constructor */ private URNUtils() { // do nothing } public static String createRodaURN(RODA_TYPE type, String id) { StringBuilder sb = new StringBuilder(); sb.append(RodaConstants.URN_BASE); sb.append(RodaConstants.URN_SEPARATOR); sb.append(RodaConstants.URN_RODA); sb.append(RodaConstants.URN_SEPARATOR); sb.append(type); sb.append(RodaConstants.URN_SEPARATOR); sb.append(id); return sb.toString().toLowerCase(); } public static String createRodaPreservationURN(PreservationMetadataType preservationType, String id) { StringBuilder sb = new StringBuilder(); sb.append(getPremisPrefix(preservationType)); sb.append(id); return sb.toString(); } public static String getPremisPrefix(PreservationMetadataType type) { StringBuilder sb = new StringBuilder(); sb.append(RodaConstants.URN_BASE); sb.append(RodaConstants.URN_SEPARATOR); sb.append(RodaConstants.URN_RODA); sb.append(RodaConstants.URN_SEPARATOR); sb.append(RodaConstants.URN_PREMIS); sb.append(RodaConstants.URN_SEPARATOR); sb.append(type); sb.append(RodaConstants.URN_SEPARATOR); return sb.toString().toLowerCase(); } public static PreservationMetadataType getPreservationMetadataTypeFromId(String id) { String[] fields = id.split(RodaConstants.URN_SEPARATOR); return PreservationMetadataType.valueOf(fields[3].toUpperCase()); } }