RFWDataFormatter

De Wiki do Leitão
Revisão de 15h02min de 21 de julho de 2023 por Rodrigogml (discussão | contribs) (Criou página com 'O RFWDataFormatter é uma interface utilizada para criar implementações de classe que realizam a conversão de dados do sistema (como manipulado no VO ou persistido no banco) e o formato para exibição para o usuário. Por exemplo, no VO temos um valor monetário salvo com o tipo BigDecimal, mas para o usuário precisamos formatar incluindo cifrão, símbolo de moeda e número de casas decimais. O passo contrário, de tratar as entradas do usuário ou de outras fonte...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

O RFWDataFormatter é uma interface utilizada para criar implementações de classe que realizam a conversão de dados do sistema (como manipulado no VO ou persistido no banco) e o formato para exibição para o usuário. Por exemplo, no VO temos um valor monetário salvo com o tipo BigDecimal, mas para o usuário precisamos formatar incluindo cifrão, símbolo de moeda e número de casas decimais.

O passo contrário, de tratar as entradas do usuário ou de outras fontes, também podem ser tratadas nesta classe e otimizadas por todo o sistema.


Classes Implementadas

O RFW já contém diversas classes implementadas que ajudarão no processo de parser e formatação dos dados, por exemplo:

  • RFWEnumerationDataFormatter - Formata uma enumeration de acordo com seu valor no arquivo de bundle. Esta classe não faz o processo de parser.
  • RFWLongDataFormatter - Formata um número Long para exibição, permitindo algumas configurações de formato, número máximo e mínimo, etc. para realização do parser.


Todas as classes seguem o padrão de nome: RFW....DataFormatter.


Parser e Conversão

O parser da informação e a formação são realizadas respectivamente pelos métodos:

  • toVO() - recebe o dados bruto como entrado pelo usuário ou outra fonte e retorna o objeto para ser inserido no VO; e,
  • toPresentation() - recebe o objeto do VO e formata para exibição conforme definições da classe.


Validação no Parser

Há o método validate() na classe. Que tem a função exclusiva de validar se a entrada do usuário pode ser interpretada e convertida pela classe.

Em suma ela tem a mesma validação do toVO(), com a diferença que não retorna nenhum objeto, apenas lança exceção se falhar.


Tamanho Máximo

O DataFormatter costuma ter um método de tamanho máximo (maxLenght) para informar o tamanho máximo de entrada de dados para aquela formatação. Que muitas vezes pode diferir do tamanho do VO. Por exemplo, imagine que o formato salvo no VO seja uma data no formato timestamp em String: "20230721", tamanho máximo de 8 caracteres. Já o usuário entrará no formato brasileiro: "21/07/2023", tamanho máximo 10. Outro exemplo seria um CPF, salvo no VO apenas os números, mas para exibição teremos a pontuação.


Este método é muito útil para limitar entradas de campos de UI.


reformatPresentationContent

Este método tem uma dinâmica relativamente simples, tem a função de reformatar o dado que um usuário digita para exibi-lo no formato do sistema. Por exemplo, para um valor monetário, o usuário digita "1054,3", a aplicação consegue fazer o parser, mas exibe o valor reformatado para "$ 1.054,30". Este método tem essa finalidade.

Na implementação padrão este método chama o método toVO() para realizar o parser, e em seguida chama novamente o toPresentation() para obter o valor formatado.