Dans une classe de domaine j'ai une valeur d'un ENUM qui représente une adresse e-mail ou une URLValidator pour plusieurs types de Grails
class Contact{
ContactType contact
String value
}
enum ContactType{
EMAIL,
URL
}
Je suis en train d'utiliser le construit dans Grails cours EmailConstraint et UrlConstraint à valider:
static constraints = {
value(validator: {
ContactType.validate(obj, val, errors)
})
}
J'ai réussi à le faire fonctionner en faisant quelques hypothèses de lecture source de Grails:
Constraint constraint = new EmailConstraint()
constraint.setPropertyName "value"
constraint.setOwningClass obj.class
constraint.setParameter true
constraint.validate(obj, obj.value, errors)
Mais je trouve cela très moche, donc je me demandais si quelqu'un peut offrir une meilleure solution.
Merci.
Bonne idée, merci, mais encore, le code de la contrainte ne cesse de me déranger. – Eldelshell
vous pourriez 'groovyfy' le code ci-dessus à: new EmailConstraint (propertyName: 'value', owningClass: obj.class, paramater: true) .validate (obj, obj.value, erreurs) –