Condições de busca com prioridade de operadores em um list

6 respostas
djorodrigo

Fala galera,

estou a alguns dias procurando sobre como resolver uma busca com condições - AND, OR e parenteses - sobre uma lista - List ou algo do
gênero. É como se fosse algo assim:
Tenho uma lista com produtos, e cada produto tem uma série de
características dispostas em uma lista. Precisaria fazer uma busca com
condições nesta lista de características, entenderam??

alguém tem alguma sugestão de como poderia implementar isso, ou se alguém tem algum framework que já existe e que seja free, poderia me indicar.

Não sei se vocês entenderam, se alguém puder me dar algum sugestão realmente ficaria muito grato.

Abraços,
Rodrigo.

6 Respostas

C

Uma vez lí que existiam umas “Collections” que permitiam vc executar queries SQL. Não sei se funciona, mas essa aqui é um exemplo:

http://josql.sourceforge.net/

[]'s

djorodrigo

Não é bem isso, não sei se expliquei mal, mas é o seguinte:

Imagine um ResultSet que tem um campo com o nome de um produto, e um outro campo tem um list. A minha pergunta é: Como faço, se já existe ou se alguém já passou pela situação de fazer uma busca com expressões - AND, OR e precedência de operadores com parenteses - no campo que tem o list, compreenderam??

Tipo, quero fazer uma busca de varias caracteristicas de N produtos, mas essas caracteristicas estao dispostas em um list, por exemplo:

produto 1:
televisao
caracteristicas:
cor = preto
voltagem = 110
peso = 100

produto 2:
radio
caracteristicas:
cor = preto
voltagem = 220
peso = 100

minha busca seria
(((cor = preto) and (peso = 100)) or (voltagem = 220))

nessa busca me retornaria o radio e a televisao, entenderam??

djorodrigo

Não é bem isso, não sei se expliquei mal, mas é o seguinte:

Imagine um ResultSet que tem um campo com o nome de um produto, e um outro campo tem um list. A minha pergunta é: Como faço, se já existe ou se alguém já passou pela situação de fazer uma busca com expressões - AND, OR e precedência de operadores com parenteses - no campo que tem o list, compreenderam??

Tipo, quero fazer uma busca de varias caracteristicas de N produtos, mas essas caracteristicas estao dispostas em um list, por exemplo:

produto 1:
televisao
caracteristicas:
cor = preto
voltagem = 110
peso = 100

produto 2:
radio
caracteristicas:
cor = preto
voltagem = 220
peso = 200

minha busca seria
(((cor = preto) and (peso = 100)) or (voltagem = 220))

nessa busca me retornaria o radio e a televisao, entenderam??

louds

www.ognl.org

djorodrigo

td bem, esse site já dei uma olhada, mas não tem exemplos nem nada,
alguém já usou essas bibliotecas do ognl???

djorodrigo

aeee, funcionou.
Valeu pela indicação do framework ognl.
Muito bacana a forma de como foi feita.
É possível implementar a busca de diversas formas, como por exemplo:

OGNLExpressionFactory of = OGNLExpressionFactory.getInstance();
Expression exp = of.createExpression((150001 in {15002, 150001, 150001}) and (15002 in {15002, 150001, 150001}));
System.out.println(exp.getValue(null).toString());

Busca em uma lista definida por mim, com operadores lógicos and e or, xor, in, e outros mais, e trabalhando com operadores de precedência.

Valeu galera.

Criado 11 de abril de 2005
Ultima resposta 12 de abr. de 2005
Respostas 6
Participantes 3