diff --git a/src/main/java/org/gcube/informationsystem/utils/ReservedUUID.java b/src/main/java/org/gcube/informationsystem/utils/ReservedUUID.java new file mode 100644 index 0000000..7aeb195 --- /dev/null +++ b/src/main/java/org/gcube/informationsystem/utils/ReservedUUID.java @@ -0,0 +1,41 @@ +package org.gcube.informationsystem.utils; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +public final class ReservedUUID { + + public static final Set RESERVED_UUID_STRING; + public static final Set RESERVED_UUID; + + static { + RESERVED_UUID_STRING = new HashSet<>(); + RESERVED_UUID = new HashSet<>(); + + String[] uuidValidCharacters = {"1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}; + + for(String string : uuidValidCharacters) { + String uuidString = "00000000-0000-0000-0000-000000000000"; + uuidString.replaceAll("0", string); + RESERVED_UUID_STRING.add(uuidString); + RESERVED_UUID.add(UUID.fromString(uuidString)); + } + } + + public static boolean isReservedUUID(UUID uuid) { + return RESERVED_UUID.contains(uuid); + } + + public static boolean isReservedUUID(String uuid) { + return RESERVED_UUID_STRING.contains(uuid); + } + + public static Set allUUIDAsString(){ + return new HashSet<>(RESERVED_UUID_STRING); + } + + public static Set allUUID(){ + return new HashSet<>(RESERVED_UUID); + } +}