// Path: Server/src/main/java/com/easychat/exception/BadRequestException.java
// public class BadRequestException extends BasicException{
//     public BadRequestException(String error, String description) {
//         super(error, description);
//     }
// }
// 
// Path: Server/src/main/java/com/easychat/model/dto/input/UserDTO.java
// public class UserDTO {
//     private String name;
// 
//     private String password;
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
// }
// 
// Path: Server/src/main/java/com/easychat/model/error/ErrorType.java
// public final class ErrorType {
//     public static final String NO_ERROR = "no_error";
//     public static final String INVALID_GRANT = "invalid_grant";
//     public static final String SERVICE_RESOURCE_NOT_FOUND = "service_resource_not_found";
//     public static final String DUPLICATE_UNIQUE_PROPERTY_EXISTS="duplicate_unique_property_exists";
//     public static final String ILLEGAL_ARGUMENT="illegal_argument";
//     public static final String AUTH_BAD_ACCESS_TOKEN="auth_bad_access_token";
// }
// 
// Path: Server/src/main/java/com/easychat/repository/UserRepository.java
// public interface UserRepository extends JpaRepository<User, Long>{
// 
//     User findByName(String name);
// }
// 
// Path: Server/src/main/java/com/easychat/utils/CommonUtils.java
// public class CommonUtils {
// 
//     /**
//      * 生成token
//      * @return 生成一个UUID并返回
//      */
// 
//     public static String getUUID(){
//         return UUID.randomUUID().toString();
//     }
// 
//     /**
//      * 进行md5加密
//      * @return 返回经过md5加密后的字符串
//      */
//     public static String md5(String password) {
//         try {
//             MessageDigest MD5 = MessageDigest.getInstance("MD5");
//             MD5.update(password.getBytes());
//             String pwd = new BigInteger(1, MD5.digest()).toString(16);
//             return pwd;
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
//         return password;
//     }
// 
//     /**     * 验证Email
//      * * @param email email地址，格式：zhang@gmail.com，zhang@xxx.com.cn，xxx代表邮件服务商
//      * 允许为""
//      * * @return 验证成功返回true，验证失败返回false
//      * */
//     public static boolean checkEmail(String email) {
//         if(email.equals(""))
//             return true;
//         else {
//             String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
//             return Pattern.matches(regex, email);
//         }
//     }
//     /**
//      * 验证用户名
//      * @return 用户名合法则返回true,否则返回false
//      */
//     public static boolean checkName(String name){
//         String regex="^[0-9a-zA-Z_]{6,10}$";
//         return Pattern.matches(regex, name);
//     }
//     /**
//      * 验证密码
//      * @return 密码合法则返回true,否则返回false
//      */
//     public static boolean checkPassword(String password){
//         String regex="^[0-9a-zA-Z]{6,10}$";
//         return Pattern.matches(regex, password);
//     }
//     /**
//      * 验证手机号码
//      * 允许为""
//      */
//     public static boolean checkPhone(String phone){
//         if(phone.equals(""))
//             return true;
//         else {
//             String regex = "^1\\d{10}$";
//             return Pattern.matches(regex, phone);
//         }
//     }
//     /**
//      * 验证性别
//      */
//     public static boolean checkSex(String sex) {
//         return true;
//     }
//     /**
//      * 验证昵称
//      */
//     public static boolean checkNick(String nick){
//         String regex="^[a-zA-Z0-9\\u4e00-\\u9fa5]{1,11}$";
//         return Pattern.matches(regex,nick);
//     }
//     /**
//      * 验证个性签名
//      */
//     public static boolean checkSignInfo(String signInfo){
//         if("".equals(signInfo)){
//             return true;
//         }
//         else {
//             String regex = "^[a-zA-Z0-9,.?!，。？！\\u4e00-\\u9fa5]{1,140}$";
//             return Pattern.matches(regex, signInfo);
//         }
//     }
// }


import com.easychat.exception.BadRequestException;
import com.easychat.model.dto.input.UserDTO;
import com.easychat.model.error.ErrorType;
import com.easychat.repository.UserRepository;
import com.easychat.utils.CommonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
package com.easychat.validator;



/**
 * Created by xhans on 2016/1/28.
 */
public class UserDTOValidator implements Validator{

    @Autowired
    private UserRepository userRepository;

    @Override
    public boolean supports(Class<?> clazz) {
        return UserDTO.class.equals(clazz);//声明校验的类
    }

// Path: Server/src/main/java/com/easychat/exception/BadRequestException.java
// public class BadRequestException extends BasicException{
//     public BadRequestException(String error, String description) {
//         super(error, description);
//     }
// }
// 
// Path: Server/src/main/java/com/easychat/model/dto/input/UserDTO.java
// public class UserDTO {
//     private String name;
// 
//     private String password;
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
// }
// 
// Path: Server/src/main/java/com/easychat/model/error/ErrorType.java
// public final class ErrorType {
//     public static final String NO_ERROR = "no_error";
//     public static final String INVALID_GRANT = "invalid_grant";
//     public static final String SERVICE_RESOURCE_NOT_FOUND = "service_resource_not_found";
//     public static final String DUPLICATE_UNIQUE_PROPERTY_EXISTS="duplicate_unique_property_exists";
//     public static final String ILLEGAL_ARGUMENT="illegal_argument";
//     public static final String AUTH_BAD_ACCESS_TOKEN="auth_bad_access_token";
// }
// 
// Path: Server/src/main/java/com/easychat/repository/UserRepository.java
// public interface UserRepository extends JpaRepository<User, Long>{
// 
//     User findByName(String name);
// }
// 
// Path: Server/src/main/java/com/easychat/utils/CommonUtils.java
// public class CommonUtils {
// 
//     /**
//      * 生成token
//      * @return 生成一个UUID并返回
//      */
// 
//     public static String getUUID(){
//         return UUID.randomUUID().toString();
//     }
// 
//     /**
//      * 进行md5加密
//      * @return 返回经过md5加密后的字符串
//      */
//     public static String md5(String password) {
//         try {
//             MessageDigest MD5 = MessageDigest.getInstance("MD5");
//             MD5.update(password.getBytes());
//             String pwd = new BigInteger(1, MD5.digest()).toString(16);
//             return pwd;
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
//         return password;
//     }
// 
//     /**     * 验证Email
//      * * @param email email地址，格式：zhang@gmail.com，zhang@xxx.com.cn，xxx代表邮件服务商
//      * 允许为""
//      * * @return 验证成功返回true，验证失败返回false
//      * */
//     public static boolean checkEmail(String email) {
//         if(email.equals(""))
//             return true;
//         else {
//             String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
//             return Pattern.matches(regex, email);
//         }
//     }
//     /**
//      * 验证用户名
//      * @return 用户名合法则返回true,否则返回false
//      */
//     public static boolean checkName(String name){
//         String regex="^[0-9a-zA-Z_]{6,10}$";
//         return Pattern.matches(regex, name);
//     }
//     /**
//      * 验证密码
//      * @return 密码合法则返回true,否则返回false
//      */
//     public static boolean checkPassword(String password){
//         String regex="^[0-9a-zA-Z]{6,10}$";
//         return Pattern.matches(regex, password);
//     }
//     /**
//      * 验证手机号码
//      * 允许为""
//      */
//     public static boolean checkPhone(String phone){
//         if(phone.equals(""))
//             return true;
//         else {
//             String regex = "^1\\d{10}$";
//             return Pattern.matches(regex, phone);
//         }
//     }
//     /**
//      * 验证性别
//      */
//     public static boolean checkSex(String sex) {
//         return true;
//     }
//     /**
//      * 验证昵称
//      */
//     public static boolean checkNick(String nick){
//         String regex="^[a-zA-Z0-9\\u4e00-\\u9fa5]{1,11}$";
//         return Pattern.matches(regex,nick);
//     }
//     /**
//      * 验证个性签名
//      */
//     public static boolean checkSignInfo(String signInfo){
//         if("".equals(signInfo)){
//             return true;
//         }
//         else {
//             String regex = "^[a-zA-Z0-9,.?!，。？！\\u4e00-\\u9fa5]{1,140}$";
//             return Pattern.matches(regex, signInfo);
//         }
//     }
// }


// Path: Server/src/main/java/com/easychat/validator/UserDTOValidator.java
import com.easychat.exception.BadRequestException;
import com.easychat.model.dto.input.UserDTO;
import com.easychat.model.error.ErrorType;
import com.easychat.repository.UserRepository;
import com.easychat.utils.CommonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

package com.easychat.validator;



/**
 * Created by xhans on 2016/1/28.
 */
public class UserDTOValidator implements Validator{

    @Autowired
    private UserRepository userRepository;

    @Override
    public boolean supports(Class<?> clazz) {
        return UserDTO.class.equals(clazz);//声明校验的类
    }

    @Override