Issue #66: Refactor engine and adapter relationship
Após um problema encontrado com a geração de consulta os dois principais componentes envolvidos no processo, (Engine e Adapter) foram refatorados.
A Engine ganhou mais importância. Além de encontrar as agregações necessárias para realizar a consulta ela já entrega para o adapter a estrutura que a consulta deve ser montada.
Foi definida uma estrura baseada em 3 operações que permite contruir uma agregação a partir de um conjunto de outras agregações.
O Adapter teve a função reduzida e apenas deve traduzir as 3 operações para o formato aceito em seu próprio banco de dados.
Além da reestruturação desses componentes o próprio algoritmo de construção da consulta foi redefido, baseado nessas 3 operações. Com esse novo algoritmo o problema de geração de consulta foi resolvido, além de simplicar o código em si.
Além das mudanças nesses compoenentes essenciais foi adicionada uma nova classe ViewHandler que foi utilizada como abstração pelo componente engine para manipulação das agregações. Essa classe assumiu as responsabilidades da construção da estrutura da consulta em 3 operações.
As principais consequencias dessa modificação são:
- A contrução da consulta é independe do banco de dados. Agora realizada pela engine.
- A criação de novos adaptadores foi simplificada.
- O algoritmo de contrução de consulta doi corrigido
Signed-off-by: Lucas Fernandes de Oliveira lfoliveira@inf.ufpr.br