http://jira.mfd.msk:8088/browse/CLS-74 fixed validation
This commit is contained in:
parent
f771d755e3
commit
0b89f03b57
1 changed files with 25 additions and 7 deletions
|
|
@ -11,17 +11,35 @@ import ru.spcex.clearing.balance.validation.AccountBalanceValidationRule;
|
||||||
import ru.spcex.clearing.balance.validation.Sdf01ValidationRule;
|
import ru.spcex.clearing.balance.validation.Sdf01ValidationRule;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
//fixme вынести Imdg за пределы лямбды
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ValidationConfig {
|
public class ValidationConfig {
|
||||||
|
private final Map<String, Imdg<? extends SpcexObjectBase>> imdgs;
|
||||||
|
|
||||||
|
public ValidationConfig(ImdgProvider imdgProvider) {
|
||||||
|
this.imdgs = new HashMap<>();
|
||||||
|
BiConsumer<String, Class<? extends SpcexObjectBase>> addImdg = (s, aClass) -> imdgs.put(s, imdgProvider.getImdg(s, aClass));
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* чтобы во всех валидаторах был один экземпляр Imdg
|
||||||
|
*/
|
||||||
|
private Imdg<?> getImdg(String key) {
|
||||||
|
return imdgs.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@Bean("sdf01Validator")
|
@Bean("sdf01Validator")
|
||||||
|
|
@ -29,9 +47,9 @@ public class ValidationConfig {
|
||||||
return sDf01 -> {
|
return sDf01 -> {
|
||||||
ImdgValidationContext<SDf01> context = new ImdgValidationContext<>();
|
ImdgValidationContext<SDf01> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(sDf01);
|
context.setValidatedObject(sDf01);
|
||||||
BiConsumer<String, Class<? extends SpcexObjectBase>> addImdg = (s, aClass) -> context.addImdg(s, imdgProvider.getImdg(s, aClass));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, getImdg(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Account, Account.class);
|
addImdg.accept(IMDGDistributedNames.Map_Account);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Company, Company.class);
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
Sdf01ValidationRule.CompanyPresent,
|
Sdf01ValidationRule.CompanyPresent,
|
||||||
Sdf01ValidationRule.AccountPresent,
|
Sdf01ValidationRule.AccountPresent,
|
||||||
|
|
@ -48,9 +66,9 @@ public class ValidationConfig {
|
||||||
return fieldsToValidateWrapper -> {
|
return fieldsToValidateWrapper -> {
|
||||||
ImdgValidationContext<AccountBalanceValidation> context = new ImdgValidationContext<>();
|
ImdgValidationContext<AccountBalanceValidation> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(fieldsToValidateWrapper);
|
context.setValidatedObject(fieldsToValidateWrapper);
|
||||||
BiConsumer<String, Class<? extends SpcexObjectBase>> addImdg = (s, aClass) -> context.addImdg(s, imdgProvider.getImdg(s, aClass));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, getImdg(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Account, Account.class);
|
addImdg.accept(IMDGDistributedNames.Map_Account);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Company, Company.class);
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
AccountBalanceValidationRule.CompanyPresent,
|
AccountBalanceValidationRule.CompanyPresent,
|
||||||
AccountBalanceValidationRule.AccountOk);
|
AccountBalanceValidationRule.AccountOk);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue