in java/src/main/java/com/epam/deltix/containers/UUID.java [284:325]
public static boolean isValid(CharSequence string, int offset, UUIDParseFormat format) {
if (string == null)
return false;
if (string.length() < offset + 32)
return false;
if (format == UUIDParseFormat.ANY)
format = string.charAt(offset + 8) == '-' ? UUIDParseFormat.ANYCASE : UUIDParseFormat.ANYCASE_WITHOUT_DASHES;
switch (format) {
case LOWERCASE:
case UPPERCASE:
case ANYCASE: {
if (!canExtract(string, offset, 8, 0L, format)) return false;
long m = extract(string, offset, 8, 0L, format);
if (string.charAt(offset + 8) != '-')
return false;
if (!canExtract(string, offset + 9, 4, m, format)) return false;
m = extract(string, offset + 9, 4, m, format);
if (string.charAt(offset + 13) != '-')
return false;
if (!canExtract(string, offset + 14, 4, m, format)) return false;
m = extract(string, offset + 14, 4, m, format);
if (string.charAt(offset + 18) != '-')
return false;
long l = 0;
if (!canExtract(string, offset + 19, 4, 0L, format)) return false;
l = extract(string, offset + 19, 4, 0L, format);
if (string.charAt(offset + 23) != '-')
return false;
if (!canExtract(string, offset + 24, 12, l, format)) return false;
break;
}
case LOWERCASE_WITHOUT_DASHES:
case UPPERCASE_WITHOUT_DASHES:
case ANYCASE_WITHOUT_DASHES:
if ((!canExtract(string, offset, 16, 0L, format)) || (!canExtract(string, offset + 16, 16, 0L, format))) return false;
break;
}
return true;
}