78 lines
2.9 KiB
Java
78 lines
2.9 KiB
Java
package eu.eudat.model.persist.tenantconfig;
|
|
|
|
import eu.eudat.commons.validation.BaseValidator;
|
|
import gr.cite.tools.validation.ValidatorFactory;
|
|
import gr.cite.tools.validation.specification.Specification;
|
|
import eu.eudat.convention.ConventionService;
|
|
import eu.eudat.errorcode.ErrorThesaurusProperties;
|
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class TenantConfigPersist {
|
|
|
|
private TenantDepositConfigPersist deposit;
|
|
|
|
public static final String _deposit = "deposit";
|
|
|
|
private TenantFileTransformersConfigPersist fileTransformers;
|
|
|
|
public static final String _fileTransformers = "fileTransformers";
|
|
|
|
public TenantDepositConfigPersist getDeposit() {
|
|
return deposit;
|
|
}
|
|
|
|
public void setDeposit(TenantDepositConfigPersist deposit) {
|
|
this.deposit = deposit;
|
|
}
|
|
|
|
public TenantFileTransformersConfigPersist getFileTransformers() {
|
|
return fileTransformers;
|
|
}
|
|
|
|
public void setFileTransformers(TenantFileTransformersConfigPersist fileTransformers) {
|
|
this.fileTransformers = fileTransformers;
|
|
}
|
|
|
|
@Component(TenantConfigPersistValidator.ValidatorName)
|
|
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
|
public static class TenantConfigPersistValidator extends BaseValidator<TenantConfigPersist> {
|
|
|
|
public static final String ValidatorName = "TenantConfigPersistValidator";
|
|
|
|
private final ValidatorFactory validatorFactory;
|
|
|
|
protected TenantConfigPersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, ValidatorFactory validatorFactory) {
|
|
super(conventionService, errors);
|
|
this.validatorFactory = validatorFactory;
|
|
}
|
|
|
|
@Override
|
|
protected Class<TenantConfigPersist> modelClass() {
|
|
return TenantConfigPersist.class;
|
|
}
|
|
|
|
@Override
|
|
protected List<Specification> specifications(TenantConfigPersist item) {
|
|
return Arrays.asList(
|
|
this.refSpec()
|
|
.iff(() -> !this.isNull(item.getDeposit()))
|
|
.on(TenantConfigPersist._deposit)
|
|
.over(item.getDeposit())
|
|
.using(() -> this.validatorFactory.validator(TenantDepositConfigPersist.TenantDepositConfigPersistValidator.class)),
|
|
this.refSpec()
|
|
.iff(() -> !this.isNull(item.getFileTransformers()))
|
|
.on(TenantConfigPersist._fileTransformers)
|
|
.over(item.getFileTransformers())
|
|
.using(() -> this.validatorFactory.validator(TenantFileTransformersConfigPersist.TenantFileTransformersConfigPersistValidator.class))
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|
|
|