DictionaryPresentRule add additional checks
This commit is contained in:
parent
cf22ea1074
commit
466037cd22
2 changed files with 43 additions and 27 deletions
|
|
@ -15,6 +15,7 @@ import java.util.function.Function;
|
|||
|
||||
/**
|
||||
* Проверка поля с кодом из словаря (таблицы *_dictionary)
|
||||
*
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <D> Класс словаря
|
||||
*/
|
||||
|
|
@ -24,58 +25,68 @@ public record DictionaryPresentRule<R, D extends AbstractDictionary>(String fiel
|
|||
Class<D> dictionaryClass,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
IErrorEnumId errorWrongDictionaryValue,
|
||||
boolean required) implements IValidationRule<ImdgValidationContext<R>> {
|
||||
boolean required,
|
||||
Function<D, IErrorEnumId>[] additionalChecks) implements IValidationRule<ImdgValidationContext<R>> {
|
||||
|
||||
|
||||
/**
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения проверяемого значения
|
||||
* @param dictionaryName Название словаря (см. IMDGDistributedNames)
|
||||
* @param dictionaryClass Класс словаря (классы *Dictionary.class)
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения проверяемого значения
|
||||
* @param dictionaryName Название словаря (см. IMDGDistributedNames)
|
||||
* @param dictionaryClass Класс словаря (классы *Dictionary.class)
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param errorWrongDictionaryValue Ошибка, которая будет возвращена, если поле не найдено в словаре
|
||||
* @param required Флаг обязательности
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <D> Класс словаря
|
||||
* @param required Флаг обязательности
|
||||
* @param additionalChecks Дополнительные проверки, связанные с этим полем
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <D> Класс словаря
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <R, D extends AbstractDictionary> DictionaryPresentRule<R, D> instance(String fieldName,
|
||||
Function<R, String> getter,
|
||||
String dictionaryName,
|
||||
Class<D> dictionaryClass,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
IErrorEnumId errorWrongDictionaryValue,
|
||||
boolean required) {
|
||||
boolean required,
|
||||
Function<D, IErrorEnumId>... additionalChecks) {
|
||||
return new DictionaryPresentRule<>(fieldName,
|
||||
getter,
|
||||
dictionaryName,
|
||||
dictionaryClass,
|
||||
errorEmptyRequiredValue,
|
||||
errorWrongDictionaryValue,
|
||||
required);
|
||||
required,
|
||||
additionalChecks);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения проверяемого значения
|
||||
* @param dictionaryName Название словаря (см. IMDGDistributedNames)
|
||||
* @param dictionaryClass Класс словаря (классы *Dictionary.class)
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения проверяемого значения
|
||||
* @param dictionaryName Название словаря (см. IMDGDistributedNames)
|
||||
* @param dictionaryClass Класс словаря (классы *Dictionary.class)
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param errorWrongDictionaryValue Ошибка, которая будет возвращена, если поле не найдено в словаре
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <D> Класс словаря
|
||||
* @param additionalChecks Дополнительные проверки, связанные с этим полем
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <D> Класс словаря
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <R, D extends AbstractDictionary> DictionaryPresentRule<R, D> instance(String fieldName,
|
||||
Function<R, String> getter,
|
||||
String dictionaryName,
|
||||
Class<D> dictionaryClass,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
IErrorEnumId errorWrongDictionaryValue) {
|
||||
IErrorEnumId errorWrongDictionaryValue,
|
||||
Function<D, IErrorEnumId>... additionalChecks) {
|
||||
return new DictionaryPresentRule<>(fieldName,
|
||||
getter,
|
||||
dictionaryName,
|
||||
dictionaryClass,
|
||||
errorEmptyRequiredValue,
|
||||
errorWrongDictionaryValue,
|
||||
true);
|
||||
true,
|
||||
additionalChecks);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -11,9 +11,13 @@ import java.util.function.Function;
|
|||
|
||||
/**
|
||||
* Проверка обязательности поля (not null)
|
||||
*
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения значения
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <V> Класс проверяемого значения
|
||||
* @param additionalChecks Дополнительные проверки, связанные с этим полем
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <V> Класс проверяемого значения
|
||||
*/
|
||||
public record FieldRequiredRule<R, V>(
|
||||
String fieldName,
|
||||
|
|
@ -23,17 +27,18 @@ public record FieldRequiredRule<R, V>(
|
|||
) implements IValidationRule<ImdgValidationContext<R>> {
|
||||
|
||||
/**
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения значения
|
||||
* @param fieldName Название поля
|
||||
* @param getter Метод получения значения
|
||||
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <V> Класс проверяемого значения
|
||||
* @param additionalChecks Дополнительные проверки, связанные с этим полем
|
||||
* @param <R> Класс проверяемого объекта
|
||||
* @param <V> Класс проверяемого значения
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <R, V> FieldRequiredRule<R, V> instance(String fieldName,
|
||||
Function<R, V> getter,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
Function<V, IErrorEnumId> ... additionalChecks) {
|
||||
Function<V, IErrorEnumId>... additionalChecks) {
|
||||
if (errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue");
|
||||
return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, additionalChecks);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue