package com.taobao.tddl.atom;
import com.taobao.tddl.atom.common.TAtomConstants;
import com.taobao.tddl.common.utils.TStringUtil;
/**
* 数据库状态变量
*
* @author JIECHEN
*/
public enum TAtomDbStatusEnum {
/** R只读 */
R_STATUS(TAtomConstants.DB_STATUS_R),
/** W只写 */
W_STATUS(TAtomConstants.DB_STATUS_W),
/** RW可读写 */
RW_STATUS(TAtomConstants.DB_STATUS_RW),
/** NA不可读/写 */
NA_STATUS(TAtomConstants.DB_STATUS_NA);
private String status;
TAtomDbStatusEnum(String status){
this.status = status;
}
public String getStatus() {
return status;
}
public static TAtomDbStatusEnum getAtomDbStatusEnumByType(String type) {
TAtomDbStatusEnum statusEnum = null;
if (TStringUtil.isNotBlank(type)) {
String typeStr = type.toUpperCase().trim();
if (typeStr.length() > 1) {
if (TAtomDbStatusEnum.NA_STATUS.getStatus().equals(typeStr)) {
statusEnum = TAtomDbStatusEnum.NA_STATUS;
} else if (!TStringUtil.contains(typeStr, TAtomDbStatusEnum.NA_STATUS.getStatus())
&& TStringUtil.contains(typeStr, TAtomDbStatusEnum.R_STATUS.getStatus())
&& TStringUtil.contains(typeStr, TAtomDbStatusEnum.W_STATUS.getStatus())) {
statusEnum = TAtomDbStatusEnum.RW_STATUS;
}
} else {
if (TAtomDbStatusEnum.R_STATUS.getStatus().equals(typeStr)) {
statusEnum = TAtomDbStatusEnum.R_STATUS;
} else if (TAtomDbStatusEnum.W_STATUS.getStatus().equals(typeStr)) {
statusEnum = TAtomDbStatusEnum.W_STATUS;
}
}
}
return statusEnum;
}
public boolean isNaStatus() {
return this == TAtomDbStatusEnum.NA_STATUS;
}
public boolean isRstatus() {
return this == TAtomDbStatusEnum.R_STATUS || this == TAtomDbStatusEnum.RW_STATUS;
}
public boolean isWstatus() {
return this == TAtomDbStatusEnum.W_STATUS || this == TAtomDbStatusEnum.RW_STATUS;
}
public boolean isRWstatus() {
return this == TAtomDbStatusEnum.RW_STATUS;
}
}