package sample; import java.util.*; /** * 何らかの行為に関わる処理ステータス概念。 */ public enum ActionStatusType { /** 未処理 */ Unprocessed, /** 処理中 */ Processing, /** 処理済 */ Processed, /** 取消 */ Cancelled, /** エラー */ Error; /** 完了済みのステータス一覧 */ public static final List<ActionStatusType> finishTypes = Collections.unmodifiableList( Arrays.asList(Processed, Cancelled)); /** 未完了のステータス一覧(処理中は含めない) */ public static final List<ActionStatusType> unprocessingTypes = Collections.unmodifiableList( Arrays.asList(Unprocessed, Error)); /** 未完了のステータス一覧(処理中も含める) */ public static final List<ActionStatusType> unprocessedTypes = Collections.unmodifiableList( Arrays.asList(Unprocessed, Processing, Error)); /** 完了済みのステータスの時はtrue */ public boolean isFinish() { return finishTypes.contains(this); } /** 未完了のステータス(処理中は含めない)の時はtrue */ public boolean isUnprocessing() { return unprocessingTypes.contains(this); } /** 未完了のステータス(処理中も含める)の時はtrue */ public boolean isUnprocessed() { return unprocessedTypes.contains(this); } }