addHyphens static method
Adds hyphens to a 32-character UUID string to create the standard format.
Converts a compact UUID (32 chars) to standard format (36 chars):
123e4567e89b12d3a456426614174000 → 123e4567-e89b-12d3-a456-426614174000
Returns:
- The UUID with hyphens if input is valid 32-char hex string
- The original string if it already contains hyphens
nullif input is null, empty, or not exactly 32 characters
Example:
UuidUtils.addHyphens('123e4567e89b12d3a456426614174000');
// Returns '123e4567-e89b-12d3-a456-426614174000'
UuidUtils.addHyphens('123e4567-e89b-12d3-a456-426614174000');
// Returns '123e4567-e89b-12d3-a456-426614174000' (unchanged)
UuidUtils.addHyphens('too-short'); // Returns null
Implementation
static String? addHyphens(String? uuid) {
if (uuid == null || uuid.isEmpty) {
return null;
}
// Already has hyphens
if (uuid.contains('-')) {
return uuid;
}
// Must be exactly 32 hex characters
if (uuid.length != _uuidLengthWithoutHyphens) {
return null;
}
if (!_hexOnly32Regex.hasMatch(uuid)) {
return null;
}
final StringBuffer sb = StringBuffer()
..write(uuid.substring(0, _segment1End))
..write('-')
..write(uuid.substring(_segment1End, _segment2End))
..write('-')
..write(uuid.substring(_segment2End, _segment3End))
..write('-')
..write(uuid.substring(_segment3End, _segment4End))
..write('-')
..write(uuid.substring(_segment4End));
return sb.toString();
}