information-system-model/src/main/java/org/gcube/informationsystem/utils/UUIDUtility.java

47 lines
1.3 KiB
Java

package org.gcube.informationsystem.utils;
import java.io.IOException;
import java.util.UUID;
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.informationsystem.base.reference.IdentifiableElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class UUIDUtility {
private static Logger logger = LoggerFactory.getLogger(UUIDUtility.class);
public static UUID getUUID(JsonNode jsonNode){
if(jsonNode.has(IdentifiableElement.ID_PROPERTY)) {
return UUID.fromString(jsonNode.get(IdentifiableElement.ID_PROPERTY).asText());
}
return null;
}
public static UUID getUUID(String json) throws JsonProcessingException, IOException {
logger.trace("Trying to get UUID of {} ", json);
JsonNode jsonNode = JsonUtility.getJsonNode(json);
return getUUID(jsonNode);
}
public static String getUUIDAsString(JsonNode jsonNode){
return getUUID(jsonNode).toString();
}
public static String getUUIDAsString(String json) throws JsonProcessingException, IOException{
return getUUID(json).toString();
}
public static UUID fromString(String uuidString) throws Exception {
UUID uuid = UUID.fromString(uuidString);
UUIDManager.getInstance().validateUUID(uuid);
return uuid;
}
}