package org.freeplane.core.util;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.Locale;
public abstract class UniqueIDCreator {
private static UniqueIDCreator idCreator;
public abstract String uniqueID();
public static void setCreator(UniqueIDCreator creator) {
idCreator = creator;
}
public static UniqueIDCreator getCreator() {
if(idCreator == null) {
idCreator = new UniqueIDCreator() {
public String uniqueID() {
SecureRandom random = new SecureRandom();
String s = new BigInteger(16*8, random).toString(Character.MAX_RADIX);
return (Long.toHexString(System.currentTimeMillis())+s).toUpperCase(Locale.ENGLISH);
}
};
}
return idCreator;
}
}