package com.uas.finance.constants;

import com.uas.finance.util.StringUtils;

/**
 * 用户角色
 * 
 * @author sunyj
 * @since 2017年8月17日 上午10:43:46
 */
public enum Role {

	/**
	 * 用户刚注册时，默认为普通用户
	 */
	DEFAULT,

	/**
	 * 金融服务商
	 */
	PROVIDER,

	/**
	 * 管理员
	 */
	ADMIN;

	/**
	 * 获取用户角色
	 * 
	 * @param role
	 * @return 获取的用户角色，失败则返回null
	 */
	public static Role getRole(String role) {
		if (StringUtils.isEmpty(role)) {
			return null;
		}
		try {
			return Role.valueOf(role.toUpperCase());
		} catch (IllegalArgumentException e) {
			return null;
		}
	}

	/**
	 * 获取用户角色
	 * 
	 * @param role
	 * @return 获取的用户角色
	 * @throws IllegalArgumentException
	 *             失败，抛出异常
	 */
	public static Role checkRole(String role) throws IllegalArgumentException {
		Role r = getRole(role);
		if (r == null) {
			throw new IllegalArgumentException("不支持该用户角色：" + role);
		}
		return r;
	}

}
