POO e Reflexão Computacional aplicadas ao Desenvolvimento de Filtros de Informação

  • Andrés Vidal Berriel IFRS Campus Canoas
  • Silvia de Castro Bertagnolli
  • Cimara Valim de Melo

Resumo

Este trabalho está vinculado à plataforma de compartilhamento de dados de obras de literatura brasileira traduzida, cujo nome é Richard Burton, desenvolvida no projeto de pesquisa "Literatura brasileira e transnacionalidades: identidades, deslocamentos e experimentações tecnológicas", do IFRS - Campus Canoas. Este trabalho tem como foco descrever o processo de criação de filtros de informação genéricos, utilizando como recursos a Programação Orientada a Objetos (POO) e a Reflexão Computacional (RC) na linguagem Java. Entende-se por "filtro" um método ou função que realiza um processo de filtragem em um modelo de dados normalizados (como uma lista ou um mapa). Esse processo caracteriza-se pela seleção de dados de acordo com um determinado critério, de modo a reter, no modelo de dados, somente aquelas informações úteis ao usuário. Frente à quantidade de dados suportados pela Plataforma Richard Burton e à complexidade dos relacionamentos entre os mesmos, esbarra-se na necessidade de desenvolver um método capaz de filtrá-los facilmente. De modo a exemplificar essa complexidade, alguns dos critérios de pesquisa mais comuns dentro da Plataforma requerem uma busca composta em listas contidas nos objetos do modelo de dados a ser filtrado. Dentre as premissas para o desenvolvimento desse método, estabeleceu-se sua generalidade, isto é, a necessidade do mesmo ser aplicável a listas de qualquer tipo de dado, com critérios de pesquisa de qualquer profundidade, ou seja, o caminho que deve ser seguido para chegar desde a lista filtrada até o critério pelo qual se busca. Para isso, optou-se por utilizar técnicas de RC, através dos recursos providos pela Java Reflection API. De modo geral, RC é um conceito encontrado no paradigma de programação reflexiva, e consiste na capacidade que um programa tem de examinar e modificar sua própria estrutura ou comportamento. Com essa técnica, foi possível realizar um método que, ao receber como entrada um critério de pesquisa normalizado, um valor de pesquisa, uma lista e um tipo de filtragem (igual a, menor que, maior que, etc.), retorna a lista filtrada. Esse método, já implementado na Plataforma Richard Burton, realiza filtros de informação com critérios de qualquer profundidade, sendo sua única limitação o aninhamento de várias listas dentro do critério. Essa funcionalidade não foi contemplada pelo fato de não existirem, dentro da plataforma, possíveis critérios de pesquisa que a requeiram. Além disso, foram criados submétodos (métodos privados) capazes de inferir tipos de filtragem a partir do critério e o valor de pesquisa inseridos ? permitindo a utilização de valores de pesquisa interpretáveis pelo sistema, tais como os operadores lógicos para valores numéricos, bem como versões textuais dos mesmos, por exemplo, ?maior que? em vez de ?>?. Como etapas futuras deste trabalho, pretende-se adicionar o aninhamento de listas; otimizar a inferência de tipos de filtragem; e ampliar e otimizar o processo de interpretação de valores de pesquisa estendidos. Pode-se afirmar que a API de RC da linguagem Java permite explorar os detalhes do objeto sem conhecê-lo previamente, abrindo uma gama de possibilidades úteis para a criação de soluções de software mais otimizadas.
Publicado
2015-11-06
Seção
[Pesquisa] Resumos nível médio