Validação condicional anulável do Grails ou validador customizado com opção anulável

Eu tenho um formulário para criar um lugar. Dependendo do país, o campo da província (estado, região) é obrigatório ou não.

Quando não é necessário, eu quero ser nulo, não string vazia. Eu tenho código que faz todos os campos de formulário vazios, nulo:

def newparams = [:]
        place = new Place()
        params.each() { k, v ->
            if (v instanceof String && place.hasProperty(k)) {
                if (!v.trim().length()) {
                    newparams[k] = null
                } else {
                    newparams[k] = v
                }
            }
        }

        place = new Place(newparams)
        place.validate()

Agora, no domínio do lugar, tenho um validador na província:

province validator:  {val, obj -> if (obj.country in obj.requiresRegionCountries() && !obj.province) return [province.required]}

Com essa regra, sempre consigo "província não pode ser nula", mesmo que seja necessária ou não.

Eu acho que isso é porque o validador anulável que é definido como padrão para false.

Se eu estou adicionando anulável: true, então, mesmo se a província for necessária, o validador customizado será ignorado e será possível salvar com a província vazia (acho que é porque é instanciado com null)

Agora, eu preciso de alguma forma meu validador personalizado e também a capacidade de especificar o anulável no meu validador, algo como isto:

province validator:  {val, obj -> 
  if (obj.country in obj.requiresRegionCountries() && !obj.province) { 
    nullable: false
    return [province.required] }
  else {
    nullable: true
  }
}

Como posso conseguir isso no Grails 2.0.3?

questionAnswers(2)

yourAnswerToTheQuestion