/** * */ package net.conselldemallorca.helium.webapp.mvc; import net.conselldemallorca.helium.core.model.hibernate.Enumeracio; import net.conselldemallorca.helium.core.model.service.DissenyService; import org.springframework.validation.Errors; /** * Validador per gestionar les enumeracions * * @author Limit Tecnologies <limit@limit.es> */ public class EnumeracioValidator { @SuppressWarnings({ "unchecked", "rawtypes" }) public boolean supports(Class clazz) { return clazz.isAssignableFrom(EnumeracioValorsCommand.class); } private DissenyService dissenyService; public EnumeracioValidator(DissenyService dissenyService) { this.dissenyService = dissenyService; } public void validate(Object command, Errors errors) { Enumeracio enumeracio = (Enumeracio)command; Enumeracio e = dissenyService.findAmbEntornSenseTipusExpICodi( enumeracio.getEntorn().getId(), enumeracio.getCodi()); if (e != null && !(enumeracio.getCodi().equals(e.getCodi()))) errors.rejectValue("codi", "error.enumeracio.codi.repetit"); } public void validateSenseExpTipus(Object command, Errors errors, Long expedientTipusId) { Enumeracio enumeracio = (Enumeracio)command; if(expedientTipusId!=null){ Enumeracio e = dissenyService.findAmbEntornTipusExpICodi( enumeracio.getEntorn().getId(), expedientTipusId, enumeracio.getCodi()); if (e != null && !(enumeracio.getCodi().equals(e.getCodi()))) errors.rejectValue("codi", "error.enumeracio.codi.repetit"); }else{ Enumeracio e = dissenyService.findAmbEntornSenseTipusExpICodi( enumeracio.getEntorn().getId(), enumeracio.getCodi()); if (e != null && !enumeracio.getCodi().equals(e.getCodi())) errors.rejectValue("codi", "error.enumeracio.codi.repetit"); } } }