package com.xql.designpattern.menu;
import java.util.Objects;
public enum AttInvestStatusIdEnum {
TEMPORARY{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return TO_BE_REVIEWED;
}
@Override
public String getCode() {
return "00";
}
@Override
public String getName() {
return "临时";
}
},TO_BE_REVIEWED{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return flag ? APPROVED : REVIEW_FAILED;
}
@Override
public String getCode() {
return "10";
}
@Override
public String getName() {
return "待审核";
}
},APPROVED{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return Paid;
}
@Override
public String getCode() {
return "20";
}
@Override
public String getName() {
return "审核通过";
}
},REVIEW_FAILED{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return DELETE;
}
@Override
public String getCode() {
return "25";
}
@Override
public String getName() {
return "审核不通过";
}
},Paid{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return PRE_REGISTERED;
}
@Override
public String getCode() {
return "30";
}
@Override
public String getName() {
return "已缴费";
}
},PRE_REGISTERED{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return ENTERED;
}
@Override
public String getCode() {
return "40";
}
@Override
public String getName() {
return "已预登记";
}
},ENTERED{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return this;
}
@Override
public String getCode() {
return "50";
}
@Override
public String getName() {
return "标书号已录入";
}
},DELETE{
@Override
public AttInvestStatusIdEnum getNextStatus(Boolean flag) {
return TEMPORARY;
}
@Override
public String getCode() {
return "90";
}
@Override
public String getName() {
return "删除";
}
};
/**
* 获取下一个状态值
*/
public abstract AttInvestStatusIdEnum getNextStatus(Boolean flag);
public abstract String getCode();
public abstract String getName();
/**
* 获取初始化值
*/
public static AttInvestStatusIdEnum init(){
return AttInvestStatusIdEnum.TEMPORARY;
}
/**
* 根据当前枚举值获取下一状态枚举值
*/
public static AttInvestStatusIdEnum getNextEnum(String code,Boolean flag){
return getByCode(code).getNextStatus(flag);
}
/**
* 获取枚举
*/
public static AttInvestStatusIdEnum getByCode(String code) {
for (AttInvestStatusIdEnum attInvestStatusIdEnum : AttInvestStatusIdEnum.values()) {
if (code.equals(attInvestStatusIdEnum.getCode())) {
return attInvestStatusIdEnum;
}
}
return null;
}
/**
* 比较枚举值
*/
public static Boolean checkEnums(AttInvestStatusIdEnum attInvestStatusIdEnum,String code){
AttInvestStatusIdEnum statusIdEnum = getByCode(code);
if (Objects.isNull(statusIdEnum)){
return false;
}
return attInvestStatusIdEnum == statusIdEnum;
}
/**
* 比较枚举值
*/
public static Boolean checkEnums(AttInvestStatusIdEnum attInvestStatusIdEnum,AttInvestStatusIdEnum statusIdEnum){
if (Objects.isNull(statusIdEnum)){
return false;
}
return attInvestStatusIdEnum == statusIdEnum;
}
}
枚举类--枚举状态机
最新推荐文章于 2023-06-23 15:29:40 发布