/*
* Copyright 2014-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.rockagen.gnext.tool;
import com.rockagen.commons.util.ClassUtil;
import com.rockagen.commons.util.CommUtil;
import com.rockagen.commons.util.MDUtil;
import com.rockagen.commons.util.ReflexUtil;
import java.lang.reflect.Field;
/**
* Utils
*
* @author ra
* @since JDK1.8
*/
public class Utils {
/**
* Gavatar
*/
public static final String AVATAR_BASE="http://www.gravatar.com/avatar/";
public static final String AVATAR_D="d=mm";
public static final String AVATAR_S="s=40";
public static final String AVATAR_LS="s=460";
/**
* Check email
*
* @param email email
* @return true if valid
*/
public static boolean checkEmail(String email) {
if(CommUtil.isNotBlank(email)){
return isEmail(email);
}
return true;
}
/**
* Is email?
* @param email email
* @return true if valid
*/
public static boolean isEmail(String email){
return CommUtil.isEmail(email);
}
/**
* Check uid
*
* @param uid username
* @return true if valid
*/
public static boolean checkUid(String uid) {
if (CommUtil.isNotBlank(uid)) {
String parten = "^[a-zA-Z0-9_.]{3,16}$";
return uid.matches(parten);
}
return false;
}
/**
* Check password
*
* @param password password
* @return true if valid
*/
public static boolean checkPassword(String password) {
if (CommUtil.isNotBlank(password)) {
String parten = "^[a-zA-Z0-9_.~!@#$%^&*()\\-+=]{6,32}$";
return password.matches(parten);
}
return false;
}
/**
* Check phone
*
* @param phone phone
* @return true if valid
*/
public static boolean checkPhone(String phone) {
if (CommUtil.isNotBlank(phone)) {
return isPhoneNum(phone);
}
return true;
}
/**
* Is phone?
* @param phone phone
* @return true if valid
*/
public static boolean isPhoneNum(String phone){
return CommUtil.isPhoneNum(phone);
}
/**
* Check name
*
* @param name name
* @return true if valid
*/
public static boolean checkName(String name) {
if (CommUtil.isNotBlank(name)) {
String parten = "^[a-zA-Z0-9_.\\u4e00-\\u9fa5\\s]{2,16}$";
return name.matches(parten);
}
return true;
}
/**
* Check address
*
* @param addr address
* @return true if valid
*/
public static boolean checkAddress(String addr) {
if (CommUtil.isNotBlank(addr)) {
String parten = "^[a-zA-Z0-9_.\\u4e00-\\u9fa5\\s]{3,32}$";
return addr.matches(parten);
}
return true;
}
/**
* Get avatar addr
* @param email email
* @param sizeMode size mode
* @return avatar addr
*/
private static String avatar(String email,String sizeMode){
return AVATAR_BASE+ MDUtil.md5Hex(email)+"?"+AVATAR_D+"&"+sizeMode;
}
/**
* Get avatar address
* @param email email
* @return avatar address
*/
public static String getAvatar(String email){
return avatar(email,AVATAR_S);
}
/**
* Get large avatar address
* @param email email
* @return avatar address
*/
public static String getLargeAvatar(String email){
return avatar(email,AVATAR_LS);
}
/**
* Copy src object properties to des object properties
*
* @param srcObj camel style object
* @param desObj snake style object
*/
public static void copy(Object srcObj, Object desObj) {
if (srcObj != null && desObj!=null) {
Field[] fields = ClassUtil.getDeclaredFields(srcObj.getClass(), true);
for (Field f : fields) {
String fName = f.getName();
Object value = ReflexUtil.getFieldValue(srcObj, fName, true);
ReflexUtil.setFieldValue(desObj, fName, value, true);
}
}
}
}