Nesse artigo iremos ver como usar a API de validações fornecida pelo Veloster Framework
Anotações
A API de validações do Veloster contém um conjunto de anotações que são processadas antes de uma entidade ser inseridas ou alteradas no banco de dados. São elas:
Annotation | Description |
---|---|
DateValidation | Validação para data. |
Length | Validação para tamanho de String |
NotNull | Validação para valor nulo |
NumberValidation | Validação para números |
Regex | Validação com aplicação de expressão regular |
Mensages de validação
Após uma validação ser processada e algum valor ser identificado como inválido, uma exceção do tipo:
Java Code
br.com.mobilemind.veloster.exceptions.EntityValidatorException
é lançada. Em sua mensagem, será apresentado um valor recuperado no arquivo message_validates.properties, que deve estar presente na pasta de recursos da aplicação. Os mensagens padrão são:
Java Code
br.com.mobilemind.date=date range should be between {0} and {1} for field {2}
br.com.mobilemind.notnull=value cannot be null for field {0}
br.com.mobilemind.length=length range should be between {0} and {1} for field {2}
br.com.mobilemind.number=number range should be between {0} and {1} for field {2}
br.com.mobilemind.regex=invalid value. required format {0} for field {1}
br.com.mobilemind.notnull=value cannot be null for field {0}
br.com.mobilemind.length=length range should be between {0} and {1} for field {2}
br.com.mobilemind.number=number range should be between {0} and {1} for field {2}
br.com.mobilemind.regex=invalid value. required format {0} for field {1}
Existe uma mensagem para cada tipo de validação. Além disso, uma mensagem personalizada pode ser configurada para o atributo message da anotação, ou ainda pode ser configurada uma nova chave de validação, no atributo messageKey da anotação, que deverá ser inserida no arquivo message_validates.properties.
Java Code
@Length(min=5, max=200, message="Texto deve ter entre 2 a 200 caracteres")
OuJava Code
//default key is br.com.mobilemind.length
@Length(min=5, max=200, messageKey="br.com.mobilemind.custonLength")
//in message_validates.properties
br.com.mobilemind.custonLength=Texto deve ter entre 2 a 200 caracteres
@Length(min=5, max=200, messageKey="br.com.mobilemind.custonLength")
//in message_validates.properties
br.com.mobilemind.custonLength=Texto deve ter entre 2 a 200 caracteres
Processamento de uma validação
As validações são processadas através de uma implementação da interface:
Java Code
interface br.com.mobilemind.veloster.orm.EntityValidator<T>
A implementação padrão disponível para essa interface é:
Java Code
br.com.mobilemind.veloster.orm.core.EntityValidatorImpl<T extends Entity>
Para executar o validador em uma entidade, devemos executar:
Java Code
EntityValidator<Person> validator = VelosterRepository.getORMControll(Person.class).getEntityValidator();
Person person = new Person();
try {
validator.validate(person);
} catch (EntityValidatorException e) {
message = e.getMessage();
say(message);
}
Person person = new Person();
try {
validator.validate(person);
} catch (EntityValidatorException e) {
message = e.getMessage();
say(message);
}