Guest User

Untitled

a guest
Oct 1st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. @Target(ElementType.FIELD)
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Constraint(validatedBy = {EmailValidation.EmailValidator.class})
  4. public @interface EmailValidation {
  5.  
  6. String regularExpression() default "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"n" +
  7. "tt+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
  8. String message() default "Wrong input";
  9.  
  10.  
  11. class EmailValidator implements ConstraintValidator<EmailValidation,User>{
  12.  
  13. private static String regEX;
  14. private static String message;
  15. private static String emailField;
  16.  
  17. public void initialize(EmailValidation email) {
  18.  
  19. regEX = email.regularExpression();
  20. message = email.message();
  21. emailField = User.getEmail();
  22. }
  23.  
  24. public boolean isValid(User user, ConstraintValidatorContext constraintValidatorContext) {
  25. return emailValidation(user);
  26. }
  27.  
  28. private boolean emailValidation(User user){
  29.  
  30. if(!(emailField.matches(regEX))){
  31.  
  32. System.out.print("Checking");
  33.  
  34. System.out.print(message);
  35. return false;
  36.  
  37. }
  38.  
  39.  
  40. System.out.print("AllMatches");
  41.  
  42. return true;
  43. }
  44. }
  45.  
  46. public class ApplTest {
  47.  
  48. public static void main(String [] string){
  49.  
  50. User user = new User("Aleksey","13224","Aleksey.Alekseev88@gmail.com");
  51.  
  52. }
  53. }
  54.  
  55. public class User {
  56.  
  57. public static String getUserName() {
  58. return userName;
  59. }
  60.  
  61. public static String getPassword() {
  62. return password;
  63. }
  64.  
  65. public static String getEmail() {
  66. return email;
  67. }
  68.  
  69. public User(String userName, String password, String email) {
  70.  
  71. setUserName(userName);
  72. setEmail(email);
  73. setPassword(password);
  74. }
  75.  
  76. private static void setUserName(String userName) {
  77. User.userName = userName;
  78. }
  79.  
  80. private static void setPassword(String password) {
  81. User.password = password;
  82. }
  83.  
  84. private static void setEmail(String email) {
  85. User.email = email;
  86. }
  87.  
  88. private static String userName;
  89. private static String password;
  90.  
  91. @EmailValidation // Не работает!
  92. private static String email;
  93.  
  94. ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
  95. Validator validator = validatorFactory.getValidator();
  96.  
  97. User user = new User(...);
  98.  
  99. Set<ConstraintViolation<User>> constraintViolations = validator.validate(user);
  100. for (ConstraintViolation<User> cv : constraintViolations) {
  101. System.out.println(cv.getMessage());
  102. }
  103.  
  104. @Target(ElementType.FIELD)
  105. @Retention(RetentionPolicy.RUNTIME)
  106. @Constraint(validatedBy = {EmailValidation.EmailValidator.class})
  107. public @interface EmailValidation {
  108. String regularExpression() default "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"n" +
  109. "tt+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
  110. String message() default "Wrong input";
  111. Class<?>[] groups() default {};
  112. Class<? extends Payload>[] payload() default {};
  113. // Эти два Class-а вверху нужны для чего-то, без них не запускается
  114.  
  115. //
  116. // class EmailValidator implements ConstraintValidator<EmailValidation,User>
  117. // Этот класс (строкой выше который) невозможно получить вне EmailValidation
  118. // Если аннотация планируется применяться к String, то при чём тут User?
  119. //
  120. // Вообще-то вовсе не обязательно делать его вложенным
  121. // и в примерах в интернете вряд ли такое найдёте
  122. // просто так как-то само собой получилось
  123. public static class EmailValidator implements ConstraintValidator<EmailValidation, String> {
  124. private String regEX;
  125. private String message;
  126.  
  127. public EmailValidator() {
  128. }
  129.  
  130. @Override
  131. public void initialize(EmailValidation a) {
  132. regEX = a.regularExpression();
  133. message = a.message();
  134. }
  135.  
  136. @Override
  137. public boolean isValid(String t, ConstraintValidatorContext cvc) {
  138. System.out.println("Checking...");
  139. if (t != null && !(t.matches(regEX))) {
  140. System.out.println(message);
  141. return false;
  142. }
  143. System.out.println("Valid input");
  144. return true;
  145. }
  146. }
  147. }
Add Comment
Please, Sign In to add comment