/** * Parses standard hex and sortable url safe base64 * * @param s * @param offset * @param len * @return * @see TimeUUIDUtils#toSortableUrlSafeBase64(UUID) */ public static UUID parse(CharSequence s, int offset, int len) { // if (!isValid(s, offset, len)) // throw new IllegalArgumentException("invalid TimeUUID [" // + s.subSequence(offset, offset + len) + "]"); UUID retval = null; if (len == 32) { long msb = Hex.parseLong(s.subSequence(offset, offset + len)); long lsb = Hex.parseLong(s.subSequence(offset + 16, offset + 32)); retval = new UUID(msb, lsb); } else if (len == 36) { long msb = Hex.parseLong(s.subSequence(offset, offset + len)); long lsb = Hex.parseLong(s.subSequence(offset + 19, offset + 36)); retval = new UUID(msb, lsb); } else if (len == 22) { retval = TimeUUIDUtils.fromSortableUrlSafeBase64(s, offset); } if (retval == null) { throw new IllegalArgumentException( "String not in expected format [" + s.subSequence(offset, offset + len) + "]"); } return retval; }
public static String getAsSortableUrlSafeBase64() { return TimeUUIDUtils.toSortableUrlSafeBase64(get()); }
public static UUID get(Date time, Random rand) { return TimeUUIDUtils.createForGivenTimeAndRand(time.getTime() * 10000, rand); }