Este post é um pouco
diferente dos demais já que vou tratar mais de um passo-a-passo do que fazer ao
invés de trazer código.
Não sei se você já
passou pela necessidade de precisar trocar uma entidade por
outra em todo o sistema, mas quando isso acontece o trabalho é enorme.
Entidades são as
classes javas que são mapeadas para o banco de dados. Normalmente,
aplicando as boas práticas e padrões de projeto em um determinado
sistema, temos uma entidade para uma tabela, claro que podemos
ter VOs (ou DTOs como tbm são conhecidos), mas falo de uma classe que vai ser a
responsável pelo objeto inserido no banco, atualizado, apagado, enfim, o bean
persistente. Em um projeto que trabalhei, não sei porque fizeram isso
(falta de um arquiteto ou diria mesmo de uma pessoa com boa noção de O.O.),
essa regra básica não foi seguida, e tinhamos 3, 4 ou até 6 classes diferentes
apontando para a mesma tabela, com basicamente as mesmas propriedades, mudava
apenas uma ou outra, e que ainda tinham sua própria classe de negócio e
seu próprio controller. Ou seja, duplicação (ou melhor,
multiplacação) de código enorme, regras espalhadas, bagunça total.
Nesse cenário
caótico, eu precisei juntar as várias cópias de duas entidades principais, uma
que tinha 6 classes e outra que tinha 4, e deixar apenas uma de cada. Não foi
feito a junção do controller nem das classes de negócio devido ao tamanho,
complexidade e tempo, mas ter apenas um objeto trafegando entre elas facilitou
bastante as coisas. E pra fazer isso nesse sistema que é grande, eu usei o
seguinte passo a passo:
1.
Juntar todas as propriedades em uma unica entidade removendo as
repetidas mas não apagar nesse momento as classes duplicadas.
2. Para cada uma das classes que serão eliminadas faça o seguinte: use o Search do eclipse na opção File Search seguindo os padrões abaixo, ao retornar resultados, clique com botão direito na aba que abriu de mesmo nome da funcionalidade (Search) e escolha a opção substituir todos, e vá substituindo pela nova classe.
1. Marque a opção Case
Sensitive pra todas as buscas
2. Procure os imports
e substitua pelo import da classe que vai ficar
3. Procure o nome da
classe com um parêntese no início – com ou sem espaço
dependendo do padrão de codificação usado no projeto entre o nome e os parênteses.
Ex: (Usuario
4. Procure o nome da
classe com o parentese no final – com ou sem espaço dependendo
do padrão de codificação usado no projeto entre o nome e os parênteses.
Ex: Usuario(
5. Procure o nome da
classe com entre parênteses – com ou sem espaço dependendo do padrão do
projeto entre o nome e os parênteses. Ex: (Usuario)
6. Procure o nome da
classe entre os sinais de menor que ‘<’ e maior que ‘>’. Ex: <Usuario>
7. Procure o nome da
classe entre espaços. Ex: Usuario
8. Procure o nome da
classe seguido do .class. Ex: Usuario.class
Nesse ponto, podem haver alguns erros apontados na aba Problems
do Eclipse, geralmente são alguns imports que são necessários corrigir na mão Pronto,
agora apague a(s) classe(s) que não deseja mais.
Nenhum comentário:
Postar um comentário