package foundation.version; import foundation.util.Util; public enum VersionState { Preparing("待生效", 0), Active("生效", 1), History("历史", 2), Unknow("未知", 9); private String name; private int indexNo; private VersionState(String name, int indexNo) { this.name = name; this.indexNo = indexNo; } public String getName() { return name; } public int getIndexNo() { return indexNo; } public static VersionState parse(String code) { if (Util.isEmpty(code)) { return Unknow; } for (VersionState versionState : VersionState.values()) { String state = versionState.name().toLowerCase(); if (state.equalsIgnoreCase(code)) { return versionState; } } return Unknow; } public VersionState getVersionStateByIndexNo(int indexNo) { if (Util.isEmpty(indexNo)) { return Unknow; } for (VersionState versionState : VersionState.values()) { if (versionState.getIndexNo() == indexNo) { return versionState; } } return Unknow; } public VersionState getNextState() { int stateCount = VersionState.values().length; int nextIndex = (indexNo + 1)%stateCount; return getVersionStateByIndexNo(nextIndex); } }