ESTRUTURA DO PROCESSO DE GERAÇÃO
O seguinte fluxo é determinado neste processo de
geração. O programa gerador busca as informações contidas na base
de dados, carrega uma série de classes, mescla estas classes com os
templates definidos na empresa e gera os arquivos de saída. Isto
torna o gerador independente de tecnologia, pois os templates são
definidos pela empresa ou mesmo uma equipe dentro da empresa. As
classes carregadas são informações sobre todas as tabelas,
relacionamentos e metainformações. A partir dos métodos destas
classes é possível criar templates de acordo com a tecnologia da
equipe/empresa de modo simples e rápido.
Ilustração 2: Esquema Processo de Geração
Detalhamento do Processo do Geração
O gerador utiliza a tecnologia java
DatabaseMetaData, esta
tecnologia acessa a estrutura de tabelas de vários bancos de dados
independentemente de tecnologia, para obter de forma
independente as informações da estrutura da base de dados
relacional, inclusive os comentários que possuem metainformações
para enriquecer a geração.
Para criar independência entre equipes, o sistema
possui uma separação em pastas para que cada equipe possa criar
seus templates, permitindo customização mesmo dentro de uma única
empresa.
No Tribunal de Justiça do Estado do Paraná, foi
criado três pastas, como ilustrado na figura abaixo. A pasta
padrao_criminal obedece o padrão da equipe que cuida dos
sistemas criminais, pasta padrao_projudi pertence ao sistemas
cíveis e o pasta novos_projetos são para novos projetos
dentro do Tribunal.
Além disso, podem ser criadas quantas pastas
forem necessárias, de acordo com as especificidades de tecnologias
de sua empresa/equipe.
Para que se faça a geração, é necessário que
se informe os seguintes parâmetros:
Ilustração 3: Pasta de Templates
- Lista de Tabelas – nomes das tabelas que serão geradas;
- Pasta da Geração – nome do diretório onde será salvo os arquivos gerados;
- URL – URL de conexão do banco de dados. Exemplo: jdbc:postgresql://postgres-dev:5432/evep;
- Usuário do Banco – usuário de conexão com o banco de dados
- Senha – senha de conexão com o banco de dados;
- Driver – driver do banco de dados
- Esquema – esquema onde a base de dados foi criado
- Pasta do Template – como explicado acima, qual conjunto de templates serão utilizados
- Novo Projeto – indica se o projeto é novo ou não. Quando o sistema é novo, além das classes geradas ele monta um ambiente completo para que o sistema rode sem problemas.
- Alterar arquivos de configuração – indica que o gerador pode alterar diretamente todos os arquivos de configuração.
Boa parte dos parâmetros são necessários apenas
para se ter uma conexão com o banco de dados, senão seria bem menor
o número de parâmetros, o que torna bem fácil o uso do gerador,
que é a característica “Facilidade
de utilização” definidas por Ambler (AMBLER,
2002. pag. 113) .
Ilustração 4: Parâmetros de Entrada
O gerador com base nestes parâmetros, obtém as
informações da base de dados e carrega a estrutura de classes
mostrada abaixo. Depois que isto ocorre, usando a tecnologia velocity
é possível mesclar o template com os objetos carregados. Dentro do
template pode-se acessar várias informações, entre elas:
- Nome da tabela - através do método entity.getTableName();
- Nome da classe Java – através do método entity.getClassName();
- Nome do título da tela – através do método entity.getViewName();
- Se a coluna é chave estrangeira – através do método attribute.isForeignKey();
- O domínio de uma coluna – através do método attribute.getListOption();
- O tamanho do campo – através do método attribute.getLength();
- Se a coluna fará parte do relatório – através do método attribute.isReport();
- Se a coluna não é um campo obrigatório – através do método attribute.isAllowNull();
- O nome da classe que está relacionada com a coluna chave estrangeira – attribute.getForeignKey().getEntityPk().getClassName();
- O atributo que representa a classe, ou seja, aquela que é apresentada em uma combo – entity.getLookupAttribute()
http://geradorcodigojava.blogspot.com.br/2013/12/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2013/12/velocity-velocity-e-um-template-engine.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_217.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_5.html
http://geradorcodigojava.blogspot.com.br/2013/12/velocity-velocity-e-um-template-engine.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_217.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_5.html
Nenhum comentário:
Postar um comentário