/
Hipahopa808
/
SpringCourse
Обзор
Документация
Войти
/
Hipahopa808
/
SpringCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Lesson40.PatternValidation/src/main/java/ru/alishev/springcourse/util/PersonValidator.java
42 строки
1 KB
Neil Alishev
Add Lesson 40 code
08 фев 2021, 18:42
08 фев 2021, 18:42
3877ac5
Код
Авторство
О чём код?
package ru.alishev.springcourse.util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.Validator; import ru.alishev.springcourse.dao.PersonDAO; import ru.alishev.springcourse.models.Person; /** * @author Neil Alishev */ @Component public class PersonValidator implements Validator { private final PersonDAO personDAO; @Autowired public PersonValidator(PersonDAO personDAO) { this.personDAO = personDAO; } @Override public boolean supports(Class<?> aClass) { return Person.class.equals(aClass); } @Override public void validate(Object o, Errors errors) { Person person = (Person) o; if (personDAO.show(person.getEmail()).isPresent()) { // поле, код ошибки, сообщение ошибки errors.rejectValue("email", "", "This email is already in use"); } // Проверяем, что у человека имя начинается с заглавной буквы // Если имя не начинается с заглавной буквы - выдаем ошибку if (!Character.isUpperCase(person.getName().codePointAt(0))) errors.rejectValue("name", "", "Name should start with a capital letter"); } }