角色枚举实例

package com.edc.bean;

import com.edc.entity.organize.User;
import com.edc.entity.system.Role;

/**
* @author bob.mo
* @date 2017年4月13日
*/
public class RoleBean {
// 角色类型
private RoleLevel roleLevel;
// 角色名称
private CommonRole commonType;
// 角色信息
private Role role;

public RoleBean(User pUser, Role prole) {
this.role = prole;
if (pUser != null) {
this.roleLevel = RoleLevel.valueOf(pUser.getType());
}
if (prole != null) {
if (prole.getSys() == 1) {
commonType = CommonRole.valueOf(prole.getId().intValue());
} else {
commonType = CommonRole.valueOf(prole.getParentroleid()
.intValue());
}
}
}

/**
* @return the role
*/
public Role getRole() {
return role;
}

/**
* @return the roleType
*/
public RoleLevel getRoleType() {
return roleLevel;
}

/**
* @return the commonType
*/
public CommonRole getCommonType() {
return commonType;
}

public enum RoleLevel {
// 利用构造函数传参
SYS(1), PROJECT(2);
// 定义私有变量
private int value;

// 构造函数,枚举类型只能为私有
private RoleLevel(int value) {
this.value = value;
}

public int getValue() {
return value;
}

// 手写的从int到enum的转换函数
public static RoleLevel valueOf(int value) {
switch (value) {
case 1:
return SYS;
case 2:
return PROJECT;
default:
return null;
}
}

@Override
public String toString() {
return String.valueOf(this.value);
}

};

public enum CommonRole {

/*
* PA Project Administrator 项目管理员 每个项目1人 TST Test 测试员 每个项目1人 Sponsor Sponsor 申办者 PM Project Manager 项目经理 每个项目1人
* PI Principle investigator 主要研究者 每个项目1人 INV Investigator 研究者 每个中心1人 Sub-I Sub-investigator 助理研究者 每个中心1人 CRA
* Clinical Research Associate 临床监察员 每个项目1人 CRC Clinical Research Coordinator 临床协调员 每个中心1人 DM Data Manager 数据管理员
* 每个项目1人 MC Medical Control 医学审核 每个项目1人 PD Pharma_drug 厂商药物管理 每个项目1人 SD Site_drug 中心药物管理 每个中心1人
*/
// 利用构造函数传参
PA(1), CRC(2), CRA(3), DM(4), MC(5), INV(6), Sponsor(7), PI(8), PM(9), SD(
10), Sub_I(11), PD(12), TST(13), Admin(99);
// 定义私有变量
private int value;

// 构造函数,枚举类型只能为私有
private CommonRole(int value) {
this.value = value;
}

public int getValue() {
return value;
}

public static CommonRole valueOf(int value) {
switch (value) {
case 1:
return PA;
case 2:
return CRC;
case 3:
return CRA;
case 4:
return DM;
case 5:
return MC;
case 6:
return INV;
case 7:
return Sponsor;
case 8:
return PI;
case 9:
return PM;
case 10:
return SD;
case 11:
return Sub_I;
case 12:
return PD;
case 13:
return TST;
case 99:
return Admin;
default:
return null;
}
}

@Override
public String toString() {

return String.valueOf(this.value);

}

};

}

当能力支撑不了野心时,就该静下心来学习!
原文地址:https://www.cnblogs.com/1234cjq/p/6737301.html