From f7cd2307a5858f539af8da7673e6b7d282e653ae Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 15 Jun 2023 17:09:37 +0300 Subject: [PATCH] =?UTF-8?q?clearing-validation=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20=D0=BD=D0=B0=20=D0=B8=D0=BD=D0=B8=D1=86=D0=B8?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B2=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B4=D0=B0=D1=82=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/rules/DictionaryPresentRule.java | 6 +++ .../common/rules/FieldRequiredRule.java | 2 +- .../common/rules/IdPresentRule.java | 45 +++++++++++-------- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java index 30c25318b..50ca677ab 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java @@ -10,6 +10,7 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId; import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Collection; +import java.util.Objects; import java.util.Optional; import java.util.function.Function; @@ -50,6 +51,9 @@ public record DictionaryPresentRule(String fiel IErrorEnumId errorWrongDictionaryValue, boolean required, Function... additionalChecks) { + Objects.requireNonNull(errorWrongDictionaryValue, "errorWrongDictionaryValue"); + if (required) + Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue"); return new DictionaryPresentRule<>(fieldName, getter, dictionaryName, @@ -79,6 +83,8 @@ public record DictionaryPresentRule(String fiel IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorWrongDictionaryValue, Function... additionalChecks) { + Objects.requireNonNull(errorWrongDictionaryValue, "errorWrongDictionaryValue"); + Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue"); return new DictionaryPresentRule<>(fieldName, getter, dictionaryName, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java index f73172da4..c2e0ebe48 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java @@ -43,7 +43,7 @@ public record FieldRequiredRule( IErrorEnumId errorEmptyRequiredValue, boolean required, Function... additionalChecks) { - if (errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue"); + if (required && errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue"); return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, required, additionalChecks); } diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java index d9465a5f6..f0b811682 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java @@ -7,11 +7,13 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IErrorEnumId; import ru.spcex.platform.utils.validation.IValidationRule; +import java.util.Objects; import java.util.Optional; import java.util.function.Function; /** * Проверка наличия связанного по Id объекта в базе + * * @param Класс проверяемого объекта * @param Класс связанного объекта */ @@ -27,16 +29,16 @@ public record IdPresentRule( ) implements IValidationRule> { /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта + * @param fieldName Название поля, содержащего Id + * @param idGetter Метод получения Id + * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) + * @param mapClass Класс связанного объекта * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param required Флаг обязательности - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта + * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден + * @param required Флаг обязательности + * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом + * @param Класс проверяемого объекта + * @param Класс связанного объекта */ @SafeVarargs public static IdPresentRule instance(String fieldName, @@ -46,7 +48,10 @@ public record IdPresentRule( IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorIdNotPresent, boolean required, - Function ... additionalChecks) { + Function... additionalChecks) { + if (required) + Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue"); + Objects.requireNonNull(errorIdNotPresent, "errorIdNotPresent"); return new IdPresentRule<>(fieldName, idGetter, mapName, @@ -58,15 +63,15 @@ public record IdPresentRule( } /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта + * @param fieldName Название поля, содержащего Id + * @param idGetter Метод получения Id + * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) + * @param mapClass Класс связанного объекта * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта + * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден + * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом + * @param Класс проверяемого объекта + * @param Класс связанного объекта */ @SafeVarargs public static IdPresentRule instance(String fieldName, @@ -75,7 +80,9 @@ public record IdPresentRule( Class mapClass, IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorIdNotPresent, - Function ... additionalChecks) { + Function... additionalChecks) { + Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue"); + Objects.requireNonNull(errorIdNotPresent, "errorIdNotPresent"); return new IdPresentRule<>(fieldName, idGetter, mapName,