zoukankan      html  css  js  c++  java
  • 角色枚举实例

    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);

    }

    };

    }

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    定义扩展点,实现发布订阅机制
    JS阻止事件冒泡
    Virtualbox安装黑苹果
    外部Tomcat使用Java热部署利器JRebel
    在Windows server 2016上使用docker
    Tomcat加载web.xml文件的顺序详解
    IDEA反编译整个jar包
    java集合类的继承结构
    利用BodyTagSupport创建带标签体的自定义标签
    jquery实现简单弹出框
  • 原文地址:https://www.cnblogs.com/1234cjq/p/6737301.html
Copyright © 2011-2022 走看看