package in.partake.model.dto.auxiliary;
/**
* 最後に行われたParticipationStatusの変更内容を表す
*
* TODO: ENROLLED, NOT_ENROLLED という名前はよくない。別の名前を考えよう。
* ELIGIBLE, NOT_ELIGIBLE あたりか?
* それにともない、ModificationStatus という名前も変更する必要がある。
*/
public enum ModificationStatus {
/** 前回までは正式な参加者であると system はみなしていた */
ENROLLED,
/** 前回までは正式には参加者ではないと system はみなしていた */
NOT_ENROLLED,
/** ユーザの意志でステータスが変更されたので、次の回にはリマインダを送信しないようにする。 */
CHANGED;
private static ModificationStatus SAFE_VALUE = CHANGED;
/**
* str から Status を返す
* @param str
* @return
*/
public static ModificationStatus safeValueOf(String str) {
if (str == null) { return SAFE_VALUE; }
if ("".equals(str)) { return SAFE_VALUE; }
try {
return valueOf(str);
} catch (IllegalArgumentException e) {
return SAFE_VALUE;
}
}
}