<?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=RFWDAOConverterInterface</id>
	<title>RFWDAOConverterInterface - 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=RFWDAOConverterInterface"/>
	<link rel="alternate" type="text/html" href="https://wiki.rodrigogml.eng.br/index.php?title=RFWDAOConverterInterface&amp;action=history"/>
	<updated>2026-05-06T14:25:25Z</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=RFWDAOConverterInterface&amp;diff=130&amp;oldid=prev</id>
		<title>Rodrigogml: Criou página com &#039;O &#039;&#039;&#039;RFWDAOConverterInterface&#039;&#039;&#039; permite a criação de uma classe utilizada para &quot;ensinar&quot; o RFW ORM como tratar a serialização e desserialização de alguma informação. Embora o RFW ORM saiba como tratar a maior parte dos dados nativos, algumas informações do VO podem ter caráter personalizado ou mesmo serem representados por uma interface de dados próprios.   Em resumo esta interface tem só dois métodos: * &#039;&#039;&#039;toVO()&#039;&#039;&#039; - Que deve transformar a informação r...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.rodrigogml.eng.br/index.php?title=RFWDAOConverterInterface&amp;diff=130&amp;oldid=prev"/>
		<updated>2023-07-28T12:06:48Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;O &amp;#039;&amp;#039;&amp;#039;RFWDAOConverterInterface&amp;#039;&amp;#039;&amp;#039; permite a criação de uma classe utilizada para &amp;quot;ensinar&amp;quot; o RFW ORM como tratar a serialização e desserialização de alguma informação. Embora o RFW ORM saiba como tratar a maior parte dos dados nativos, algumas informações do VO podem ter caráter personalizado ou mesmo serem representados por uma interface de dados próprios.   Em resumo esta interface tem só dois métodos: * &amp;#039;&amp;#039;&amp;#039;toVO()&amp;#039;&amp;#039;&amp;#039; - Que deve transformar a informação r...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;O &amp;#039;&amp;#039;&amp;#039;RFWDAOConverterInterface&amp;#039;&amp;#039;&amp;#039; permite a criação de uma classe utilizada para &amp;quot;ensinar&amp;quot; o RFW ORM como tratar a serialização e desserialização de alguma informação. Embora o RFW ORM saiba como tratar a maior parte dos dados nativos, algumas informações do VO podem ter caráter personalizado ou mesmo serem representados por uma interface de dados próprios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Em resumo esta interface tem só dois métodos:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;toVO()&amp;#039;&amp;#039;&amp;#039; - Que deve transformar a informação recebida do banco de dados para o VO, e;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;toDB()&amp;#039;&amp;#039;&amp;#039; - Que faz o processo inverso, transformando o objeto do VO no objeto que será passado para o banco de dados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementação =&lt;br /&gt;
&lt;br /&gt;
Vejamos um exemplo de implementação: Imagine que por qualquer motivo uma informação que no objeto é um BigDecimal, mas no banco de dados salvaremos como String. Assim precisamos realizar a conversão como abaixo:&lt;br /&gt;
&lt;br /&gt;
{{java|Conversão de Dados entre BigDecimal e String|&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  public class MyConverter implements RFWDAOConverterInterface {&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public Object toDB(Object value) {&lt;br /&gt;
      // Para o banco de dados tratamos o nulo, e simplesmente chamamos o .toString() so BigDecimal que será recebido.&lt;br /&gt;
      if (value == null) return null;&lt;br /&gt;
      return value.toString();&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    @Override&lt;br /&gt;
    public Object toVO(Object value) {&lt;br /&gt;
      // Para o VO, tratamos o nulo e criamos um novo BigDecimal a partir do seu próprio .toString() salvo no banco. &lt;br /&gt;
      if (value == null) return null;&lt;br /&gt;
      return new BigDecimal(value.toString());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este é um exemplo bem esquisito, mas serve para ilustrar. Porém, tenha em mente que o &amp;#039;&amp;#039;&amp;#039;RFWDAOConverterInterface&amp;#039;&amp;#039;&amp;#039; serviria não apenas para converter entre tipos, mas também para tratar a maneira como é salva no banco de dados. Por exemplo, seria possível criptografar a informação ao salvar no banco, e descriptografar ao ler ela para o objeto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilização ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para utilizar a classe que criamos acima, precisamos apenas referencia-la no atributo do nosso VO utilizando a annotation &amp;#039;&amp;#039;&amp;#039;@RFWDAOConverter&amp;#039;&amp;#039;&amp;#039; no atributo que precisa da conversão:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{java|Conversão de Dados entre BigDecimal e String|&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  public class MyVO {&lt;br /&gt;
&lt;br /&gt;
    @RFWDAOConverter(converterClass = MyConverter.class)&lt;br /&gt;
    private BigDecimal myData = null;&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Rodrigogml</name></author>
	</entry>
</feed>