package jnpf.dmsService.support; import java.util.Optional; /** * Converts the persisted JNPF flow state into an idempotent number action. */ public final class DmsWenjianBianhaoFlowStateResolver { public static final int TO_BE_SUBMIT = 0; public static final int RUNNING = 1; public static final int PASSED = 2; public static final int REJECTED = 3; public static final int CANCELLED = 4; public static final int PAUSED = 5; public static final int REVOKING = 6; public static final int REVOKED = 7; public static final int BACKED = 8; public static final int RECALLED = 9; public static final int EXCEPTION = 10; private DmsWenjianBianhaoFlowStateResolver() { } public static Optional resolve(Integer flowState) { if (flowState == null) { return Optional.empty(); } switch (flowState) { case TO_BE_SUBMIT: case RECALLED: return Optional.of(Action.RESTORE_DRAFT); case RUNNING: return Optional.of(Action.FREEZE_SNAPSHOT); case PASSED: return Optional.of(Action.ISSUE_NUMBER); case REJECTED: return Optional.of(Action.REJECT); case CANCELLED: return Optional.of(Action.CANCEL); case PAUSED: case REVOKING: case BACKED: return Optional.of(Action.HOLD); case REVOKED: return Optional.of(Action.REVOKE); case EXCEPTION: return Optional.of(Action.ERROR); default: return Optional.empty(); } } public enum Action { RESTORE_DRAFT, FREEZE_SNAPSHOT, ISSUE_NUMBER, REJECT, CANCEL, HOLD, REVOKE, ERROR } }