clearing-validation добавил валидацию на инициализацию валидатора

This commit is contained in:
AKurakin 2023-06-15 17:09:37 +03:00
parent 18b0c66920
commit f7cd2307a5
3 changed files with 33 additions and 20 deletions

View file

@ -10,6 +10,7 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId;
import ru.spcex.platform.utils.validation.IValidationRule; import ru.spcex.platform.utils.validation.IValidationRule;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.function.Function; import java.util.function.Function;
@ -50,6 +51,9 @@ public record DictionaryPresentRule<R, D extends AbstractDictionary>(String fiel
IErrorEnumId errorWrongDictionaryValue, IErrorEnumId errorWrongDictionaryValue,
boolean required, boolean required,
Function<D, IErrorEnumId>... additionalChecks) { Function<D, IErrorEnumId>... additionalChecks) {
Objects.requireNonNull(errorWrongDictionaryValue, "errorWrongDictionaryValue");
if (required)
Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue");
return new DictionaryPresentRule<>(fieldName, return new DictionaryPresentRule<>(fieldName,
getter, getter,
dictionaryName, dictionaryName,
@ -79,6 +83,8 @@ public record DictionaryPresentRule<R, D extends AbstractDictionary>(String fiel
IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorWrongDictionaryValue, IErrorEnumId errorWrongDictionaryValue,
Function<D, IErrorEnumId>... additionalChecks) { Function<D, IErrorEnumId>... additionalChecks) {
Objects.requireNonNull(errorWrongDictionaryValue, "errorWrongDictionaryValue");
Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue");
return new DictionaryPresentRule<>(fieldName, return new DictionaryPresentRule<>(fieldName,
getter, getter,
dictionaryName, dictionaryName,

View file

@ -43,7 +43,7 @@ public record FieldRequiredRule<R, V>(
IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorEmptyRequiredValue,
boolean required, boolean required,
Function<V, IErrorEnumId>... additionalChecks) { Function<V, IErrorEnumId>... 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); return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, required, additionalChecks);
} }

View file

@ -7,11 +7,13 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IErrorEnumId; import ru.spcex.platform.utils.enumeration.IErrorEnumId;
import ru.spcex.platform.utils.validation.IValidationRule; import ru.spcex.platform.utils.validation.IValidationRule;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.function.Function; import java.util.function.Function;
/** /**
* Проверка наличия связанного по Id объекта в базе * Проверка наличия связанного по Id объекта в базе
*
* @param <R> Класс проверяемого объекта * @param <R> Класс проверяемого объекта
* @param <V> Класс связанного объекта * @param <V> Класс связанного объекта
*/ */
@ -27,16 +29,16 @@ public record IdPresentRule<R, V extends SpcexObjectBase>(
) implements IValidationRule<ImdgValidationContext<R>> { ) implements IValidationRule<ImdgValidationContext<R>> {
/** /**
* @param fieldName Название поля, содержащего Id * @param fieldName Название поля, содержащего Id
* @param idGetter Метод получения Id * @param idGetter Метод получения Id
* @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames)
* @param mapClass Класс связанного объекта * @param mapClass Класс связанного объекта
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
* @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден
* @param required Флаг обязательности * @param required Флаг обязательности
* @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом
* @param <R> Класс проверяемого объекта * @param <R> Класс проверяемого объекта
* @param <V> Класс связанного объекта * @param <V> Класс связанного объекта
*/ */
@SafeVarargs @SafeVarargs
public static <R, V extends SpcexObjectBase> IdPresentRule<R, V> instance(String fieldName, public static <R, V extends SpcexObjectBase> IdPresentRule<R, V> instance(String fieldName,
@ -46,7 +48,10 @@ public record IdPresentRule<R, V extends SpcexObjectBase>(
IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorIdNotPresent, IErrorEnumId errorIdNotPresent,
boolean required, boolean required,
Function<V, IErrorEnumId> ... additionalChecks) { Function<V, IErrorEnumId>... additionalChecks) {
if (required)
Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue");
Objects.requireNonNull(errorIdNotPresent, "errorIdNotPresent");
return new IdPresentRule<>(fieldName, return new IdPresentRule<>(fieldName,
idGetter, idGetter,
mapName, mapName,
@ -58,15 +63,15 @@ public record IdPresentRule<R, V extends SpcexObjectBase>(
} }
/** /**
* @param fieldName Название поля, содержащего Id * @param fieldName Название поля, содержащего Id
* @param idGetter Метод получения Id * @param idGetter Метод получения Id
* @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames)
* @param mapClass Класс связанного объекта * @param mapClass Класс связанного объекта
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
* @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден
* @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом
* @param <R> Класс проверяемого объекта * @param <R> Класс проверяемого объекта
* @param <V> Класс связанного объекта * @param <V> Класс связанного объекта
*/ */
@SafeVarargs @SafeVarargs
public static <R, V extends SpcexObjectBase> IdPresentRule<R, V> instance(String fieldName, public static <R, V extends SpcexObjectBase> IdPresentRule<R, V> instance(String fieldName,
@ -75,7 +80,9 @@ public record IdPresentRule<R, V extends SpcexObjectBase>(
Class<V> mapClass, Class<V> mapClass,
IErrorEnumId errorEmptyRequiredValue, IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorIdNotPresent, IErrorEnumId errorIdNotPresent,
Function<V, IErrorEnumId> ... additionalChecks) { Function<V, IErrorEnumId>... additionalChecks) {
Objects.requireNonNull(errorEmptyRequiredValue, "errorEmptyRequiredValue");
Objects.requireNonNull(errorIdNotPresent, "errorIdNotPresent");
return new IdPresentRule<>(fieldName, return new IdPresentRule<>(fieldName,
idGetter, idGetter,
mapName, mapName,