composite-build-usage-example

Форк
0
30 строк · 1.1 Кб
1
package by.andd3dfx.templateapp.validators;
2

3
import by.andd3dfx.templateapp.dto.ArticleUpdateDto;
4

5
import javax.validation.ConstraintValidator;
6
import javax.validation.ConstraintValidatorContext;
7
import java.lang.reflect.Field;
8

9
public class OnlyOneFieldModifiedValidator implements ConstraintValidator<OnlyOneFieldModified, ArticleUpdateDto> {
10

11
    @Override
12
    public boolean isValid(ArticleUpdateDto articleUpdateDto, ConstraintValidatorContext context) {
13
        int count = 0;
14
        ArticleUpdateDto.class.getDeclaredFields();
15
        for (Field field : ArticleUpdateDto.class.getDeclaredFields()) {
16
            try {
17
                final boolean isAccessible = field.canAccess(articleUpdateDto);
18
                field.setAccessible(true);
19
                final Object o = field.get(articleUpdateDto);
20
                if (o != null) {
21
                    count++;
22
                }
23
                field.setAccessible(isAccessible);
24
            } catch (IllegalAccessException e) {
25
                e.printStackTrace();
26
            }
27
        }
28
        return count == 1;
29
    }
30
}
31

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.