package in.partake.model.dto.auxiliary; public enum AttendanceStatus { UNKNOWN("不明"), PRESENT("出席"), ABSENT("欠席"); private static final AttendanceStatus SAFE_VALUE = UNKNOWN; private final String readableString; private AttendanceStatus(String readableString) { this.readableString = readableString; } public static AttendanceStatus safeValueOf(String str) { if (str == null) { return SAFE_VALUE; } if ("".equals(str)) { return SAFE_VALUE; } if ("present".equalsIgnoreCase(str)) { return PRESENT; } if ("absent".equalsIgnoreCase(str)) { return ABSENT; } if ("unknown".equalsIgnoreCase(str)) { return UNKNOWN; } try { return valueOf(str); } catch (IllegalArgumentException e) { return SAFE_VALUE; } } public static boolean isValueOf(String str) { if ("present".equalsIgnoreCase(str)) { return true; } if ("absent".equalsIgnoreCase(str)) { return true; } if ("unknown".equalsIgnoreCase(str)) { return true; } return false; } public String toHumanReadableString() { return readableString; } }