PreProcess
PreProcess é uma classe estática do framework utilizada para concentrar os métodos de pré-processamento e validação de dados. Por exemplo, processar uma String removendo seus espaços iniciais e finais, e se sobrar uma string vazia, retornar nulo.
Com esses métodos simplificamos o código de tratamento das informações fornecidas pelo usuário (ou obtidas de outras fontes sem padrão).
Alguns Métodos de Pré-Processamento
Veja alguns métodos disponibilizados na classe:
- processStringToNull(String) - Processa a string passada, removendo espaços (do começo, do final e espaços duplos entre as palavras) e convertendo para null quando a string for vazia.
- processLongToNullIfZeroOrNegative(Long) - Processa qualquer número Long para nulo, caso seja menor ou igual a zero.
- processCurrency(Float) - Processa qualquer número float para conter apenas duas casas decimais. Arredonda para o lado mais justo.
Veja na descrição da classe os demais métodos.
Alguns Métodos de Validação
Os métodos de validação verificam o dado passado e em caso de falha, já emitem uma exception com uma mensagem padrão do sistema, ou mensagem personalizada passada como argumento do método. Veja alguns:
- requiredNonNull(Object, String) - Valida se o objeto passado não é nulo. Caso seja lança RFWValidationException com mensagem personalizada.
- requiredNonNullNorEmptyCritical(Collection<T>, String) - Valida se a coleção não é nula nem vazia. Caso a validação falhe uma @link RFWCriticalException é lançada.
Geralmente os métodos se multiplicam recebendo ou não o argumento para a mensagem de exception personalizada (que pode ser tanto a mensagem direta quando o código de erro para ser procurado no Bundle, conforme regras explicadas na página de exceptions), e os métodos com o sufixo ...Critical() que ao invés de emitir uma exception RFWValidationException, emitem uma RFWCriticalException.
PreProcess RFWVO
Esta classe também é capaz de processar as informações dentro de um VO que faça parte da estrutura do RFWVO. Analisando cada um dos seus atributos recursivamente e validando conforme as instruções das RFWMetaAnnotations