package eu.eudat.model.persist; import eu.eudat.commons.validation.BaseValidator; 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.MessageSource; import org.springframework.context.annotation.Scope; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.List; import java.util.UUID; public class UserAdditionalInfoPersist { private String avatarUrl; private String timezone; public static final String _timezone = "timezone"; private String culture; public static final String _culture = "culture"; private String language; public static final String _language = "language"; private String roleOrganization; private UUID organizationId; public static final String _organizationId = "organizationId"; public String getAvatarUrl() { return avatarUrl; } public void setAvatarUrl(String avatarUrl) { this.avatarUrl = avatarUrl; } public String getTimezone() { return timezone; } public void setTimezone(String timezone) { this.timezone = timezone; } public String getCulture() { return culture; } public void setCulture(String culture) { this.culture = culture; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } public String getRoleOrganization() { return roleOrganization; } public void setRoleOrganization(String roleOrganization) { this.roleOrganization = roleOrganization; } public UUID getOrganizationId() { return organizationId; } public void setOrganizationId(UUID organizationId) { this.organizationId = organizationId; } @Component(UserAdditionalInfoPersistValidator.ValidatorName) @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public static class UserAdditionalInfoPersistValidator extends BaseValidator { public static final String ValidatorName = "UserAdditionalInfoPersistValidator"; private final MessageSource messageSource; protected UserAdditionalInfoPersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, MessageSource messageSource) { super(conventionService, errors); this.messageSource = messageSource; } @Override protected Class modelClass() { return UserAdditionalInfoPersist.class; } @Override protected List specifications(UserAdditionalInfoPersist item) { return Arrays.asList( this.spec() .must(() -> !this.isEmpty(item.getTimezone())) .failOn(UserAdditionalInfoPersist._timezone).failWith(messageSource.getMessage("Validation_Required", new Object[]{UserAdditionalInfoPersist._timezone}, LocaleContextHolder.getLocale())), this.spec() .must(() -> !this.isEmpty(item.getCulture())) .failOn(UserAdditionalInfoPersist._culture).failWith(messageSource.getMessage("Validation_Required", new Object[]{UserAdditionalInfoPersist._culture}, LocaleContextHolder.getLocale())), this.spec() .must(() -> !this.isEmpty(item.getLanguage())) .failOn(UserAdditionalInfoPersist._language).failWith(messageSource.getMessage("Validation_Required", new Object[]{UserAdditionalInfoPersist._language}, LocaleContextHolder.getLocale())), this.spec() .must(() -> !this.isNull(item.getOrganizationId())) .failOn(UserAdditionalInfoPersist._organizationId).failWith(messageSource.getMessage("Validation_Required", new Object[]{UserAdditionalInfoPersist._organizationId}, LocaleContextHolder.getLocale())) ); } } }