<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.rodrigogml.eng.br/index.php?action=history&amp;feed=atom&amp;title=RFWDataFormatter</id>
	<title>RFWDataFormatter - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rodrigogml.eng.br/index.php?action=history&amp;feed=atom&amp;title=RFWDataFormatter"/>
	<link rel="alternate" type="text/html" href="https://wiki.rodrigogml.eng.br/index.php?title=RFWDataFormatter&amp;action=history"/>
	<updated>2026-05-06T13:30:12Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>https://wiki.rodrigogml.eng.br/index.php?title=RFWDataFormatter&amp;diff=109&amp;oldid=prev</id>
		<title>Rodrigogml: Criou página com &#039;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...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.rodrigogml.eng.br/index.php?title=RFWDataFormatter&amp;diff=109&amp;oldid=prev"/>
		<updated>2023-07-21T15:02:41Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;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...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Classes Implementadas =&lt;br /&gt;
&lt;br /&gt;
O RFW já contém diversas classes implementadas que ajudarão no processo de parser e formatação dos dados, por exemplo:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RFWEnumerationDataFormatter&amp;#039;&amp;#039;&amp;#039; - Formata uma enumeration de acordo com seu valor no arquivo de bundle. Esta classe não faz o processo de parser.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RFWLongDataFormatter&amp;#039;&amp;#039;&amp;#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todas as classes seguem o padrão de nome: &amp;#039;&amp;#039;&amp;#039;RFW....DataFormatter&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Parser e Conversão =&lt;br /&gt;
&lt;br /&gt;
O parser da informação e a formação são realizadas respectivamente pelos métodos:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;toVO()&amp;#039;&amp;#039;&amp;#039; - recebe o dados bruto como entrado pelo usuário ou outra fonte e retorna o objeto para ser inserido no VO; e,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;toPresentation()&amp;#039;&amp;#039;&amp;#039; - recebe o objeto do VO e formata para exibição conforme definições da classe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Validação no Parser =&lt;br /&gt;
&lt;br /&gt;
Há o método &amp;#039;&amp;#039;&amp;#039;validate()&amp;#039;&amp;#039;&amp;#039; na classe. Que tem a função exclusiva de validar se a entrada do usuário pode ser interpretada e convertida pela classe.&lt;br /&gt;
&lt;br /&gt;
Em suma ela tem a mesma validação do &amp;#039;&amp;#039;&amp;#039;toVO()&amp;#039;&amp;#039;&amp;#039;, com a diferença que não retorna nenhum objeto, apenas lança exceção se falhar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tamanho Máximo =&lt;br /&gt;
&lt;br /&gt;
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: &amp;quot;20230721&amp;quot;, tamanho máximo de 8 caracteres. Já o usuário entrará no formato brasileiro: &amp;quot;21/07/2023&amp;quot;, tamanho máximo 10. Outro exemplo seria um CPF, salvo no VO apenas os números, mas para exibição teremos a pontuação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este método é muito útil para limitar entradas de campos de UI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= reformatPresentationContent =&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;1054,3&amp;quot;, a aplicação consegue fazer o parser, mas exibe o valor reformatado para &amp;quot;$ 1.054,30&amp;quot;. Este método tem essa finalidade. &lt;br /&gt;
&lt;br /&gt;
Na implementação padrão este método chama o método &amp;#039;&amp;#039;&amp;#039;toVO()&amp;#039;&amp;#039;&amp;#039; para realizar o parser, e em seguida chama novamente o &amp;#039;&amp;#039;&amp;#039;toPresentation()&amp;#039;&amp;#039;&amp;#039; para obter o valor formatado.&lt;/div&gt;</summary>
		<author><name>Rodrigogml</name></author>
	</entry>
</feed>