package com.taobao.mmp.validate;
import java.util.HashMap;
import java.util.HashSet;
import org.apache.commons.lang.StringUtils;
/**
* 本地参数类型校验库
*
* @author wb-luohu
*/
public class MmpValidateUtil {
private static MmpValidateUtil instance ;
private HashMap<String,HashSet<String>> paramsContainer= new HashMap<String,HashSet<String>>();
/**状态 1正常 -1删除 2冻结,目前只支持状态 1正常 2冻结**/
private static final String SubUserDO_status ="SubUserDO.status";
private static final String SubUserDO_status_types="1,2,-1,3";
/**是否参与分流 1不参与 2参与**/
private static final String SubUserDO_isOnline="SubUserDO.isOnline";
private static final String SubUserDO_isOnline_types="1,2";
/**
* 子账号号码的输入校验 允许1-50位的 [数字 ,-]
*/
private static final String SUBUSER_MOBILEPHONE_REGEX="^[\\d,-]{1,50}$";
private MmpValidateUtil() {
addParamsTypes(SubUserDO_status,SubUserDO_status_types);
addParamsTypes(SubUserDO_isOnline,SubUserDO_isOnline_types);
}
//保证单例
public static MmpValidateUtil getInstance(){
if(null==instance){
instance = new MmpValidateUtil();
}
return instance;
}
private HashMap<String, HashSet<String>> getParamsContainer() {
return paramsContainer;
}
//初始化合格参数容器
private void addParamsTypes(String paramName,String paramTypes){
if(!StringUtils.isEmpty(paramName)&&!StringUtils.isEmpty(paramTypes)){
String[] types=paramTypes.split(",");
if(null!=types){
HashSet<String> hs=new HashSet<String>();
for (String string : types) {
hs.add(string);
}
paramsContainer.put(paramName, hs);
}
}
}
/**
* 校验输入参数是否为合法的 子账号状态类型
* @param status
* @return
*/
public static boolean isSubUserDO_status(Integer status){
return getInstance().getParamsContainer().get(SubUserDO_status).contains(String.valueOf(status));
}
/**
* 校验输入参数是否为合法的 子账号是否分流标志
* @param isOnline
* @return
*/
public static boolean isSubUserDO_isOnline(Integer isOnline){
return getInstance().getParamsContainer().get(SubUserDO_isOnline).contains(String.valueOf(isOnline));
}
/**
* 校验字符串是否为 1-50位的 ['数字'或','或'-'] 正则表达式为"^[\\d,-]{1,50}$"
* @param phone
* @return
*/
public static boolean validateSubUserMobilePhone(String phone){
if(!StringUtils.isBlank(phone)){
return phone.matches(SUBUSER_MOBILEPHONE_REGEX);
}
return false;
}
}
import java.util.HashMap;
import java.util.HashSet;
import org.apache.commons.lang.StringUtils;
/**
* 本地参数类型校验库
*
* @author wb-luohu
*/
public class MmpValidateUtil {
private static MmpValidateUtil instance ;
private HashMap<String,HashSet<String>> paramsContainer= new HashMap<String,HashSet<String>>();
/**状态 1正常 -1删除 2冻结,目前只支持状态 1正常 2冻结**/
private static final String SubUserDO_status ="SubUserDO.status";
private static final String SubUserDO_status_types="1,2,-1,3";
/**是否参与分流 1不参与 2参与**/
private static final String SubUserDO_isOnline="SubUserDO.isOnline";
private static final String SubUserDO_isOnline_types="1,2";
/**
* 子账号号码的输入校验 允许1-50位的 [数字 ,-]
*/
private static final String SUBUSER_MOBILEPHONE_REGEX="^[\\d,-]{1,50}$";
private MmpValidateUtil() {
addParamsTypes(SubUserDO_status,SubUserDO_status_types);
addParamsTypes(SubUserDO_isOnline,SubUserDO_isOnline_types);
}
//保证单例
public static MmpValidateUtil getInstance(){
if(null==instance){
instance = new MmpValidateUtil();
}
return instance;
}
private HashMap<String, HashSet<String>> getParamsContainer() {
return paramsContainer;
}
//初始化合格参数容器
private void addParamsTypes(String paramName,String paramTypes){
if(!StringUtils.isEmpty(paramName)&&!StringUtils.isEmpty(paramTypes)){
String[] types=paramTypes.split(",");
if(null!=types){
HashSet<String> hs=new HashSet<String>();
for (String string : types) {
hs.add(string);
}
paramsContainer.put(paramName, hs);
}
}
}
/**
* 校验输入参数是否为合法的 子账号状态类型
* @param status
* @return
*/
public static boolean isSubUserDO_status(Integer status){
return getInstance().getParamsContainer().get(SubUserDO_status).contains(String.valueOf(status));
}
/**
* 校验输入参数是否为合法的 子账号是否分流标志
* @param isOnline
* @return
*/
public static boolean isSubUserDO_isOnline(Integer isOnline){
return getInstance().getParamsContainer().get(SubUserDO_isOnline).contains(String.valueOf(isOnline));
}
/**
* 校验字符串是否为 1-50位的 ['数字'或','或'-'] 正则表达式为"^[\\d,-]{1,50}$"
* @param phone
* @return
*/
public static boolean validateSubUserMobilePhone(String phone){
if(!StringUtils.isBlank(phone)){
return phone.matches(SUBUSER_MOBILEPHONE_REGEX);
}
return false;
}
}