package ru.hflabs.rcd.service.document.metaField; import org.springframework.validation.Errors; import ru.hflabs.rcd.exception.constraint.document.PrimaryMetaFieldException; import ru.hflabs.rcd.model.document.Dictionary; import ru.hflabs.rcd.model.document.MetaField; import ru.hflabs.rcd.service.document.IDictionaryService; import ru.hflabs.rcd.service.document.ValidatorService; /** * Класс <class>MetaFieldCloseValidator</class> реализует сервис валидации закрытия МЕТА-полей справочника * * @author Nazin Alexander */ public class MetaFieldCloseValidator extends ValidatorService<MetaField> { /** Сервис работы со справочниками */ private IDictionaryService dictionaryService; public MetaFieldCloseValidator() { super(MetaField.class); } public void setDictionaryService(IDictionaryService dictionaryService) { this.dictionaryService = dictionaryService; } @Override protected void doValidate(Errors errors, MetaField target) { Dictionary dictionary = dictionaryService.findByID(target.getDictionaryId(), true, true); if (dictionary != null) { doValidatePermissions(errors, dictionary.getRelative()); } if (target.isFlagEstablished(MetaField.FLAG_PRIMARY)) { reject(errors, new PrimaryMetaFieldException(target.getName()), target.getName()); } } }