Files
baiyue-firstleg/common-event-contract/src/main/java/com/baiyue/common/event/EventIdentifiers.java
T

32 lines
929 B
Java
Raw Normal View History

2026-07-30 18:01:36 +08:00
package com.baiyue.common.event;
import java.util.UUID;
import java.util.regex.Pattern;
/**
* 事件标识生成与格式判断工具。
*/
public final class EventIdentifiers {
private static final Pattern UUID_PATTERN = Pattern.compile(
"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$");
private static final Pattern ULID_PATTERN = Pattern.compile(
"^[0-7][0-9A-HJKMNP-TV-Z]{25}$", Pattern.CASE_INSENSITIVE);
private EventIdentifiers() {
}
/**
* 生成标准 UUID 字符串。
*/
public static String newUuid() {
return UUID.randomUUID().toString();
}
/**
* 判断字符串是否为标准 UUID 或 26 位 ULID。
*/
public static boolean isSupported(String value) {
return value != null && (UUID_PATTERN.matcher(value).matches() || ULID_PATTERN.matcher(value).matches());
}
}