“back”:
“Daniel Quirino Oliveira”:
Não conheço… Mas com JXPath e um pouco de CGLib aqui e ali, acho que é possível fazer isso.
Sobre a questão de desempenho, não espere uma velocidade muito boa, muito menos mais rápida do que a de um banco de dados relacional.
Como você é cruel!! Destruiu a minha Utópica Forma de Persistência… :evil: :evil: :evil: :evil:
Gustavo Guilherme BacK
Cruel? Mas é a pura verdade. Pensa só em como os bancos de dados trabalham. O tamanho de registro deles é fixo, ou seja, uma linha de uma tabela definida assim
create table Tabela(
id int not null,
nome varchar(50) not null,
email varchar(100) not null,
//constraints e outras chatices...
);
tem sempre 154 bytes (considerando int de 32 bits e 1 caracter = 1 byte). Logo para se fazer uma consulta do tipo
em um banco de dados relacional é ultra rápido, pois:
:arrow: seus registros provavelmente não estarão gravados em um arquivo texto;
:arrow: para buscar todos os nomes na Tabela, é preciso apenas somar 154 bytes a cada iteração que você chegará ao próximo registro (algo que pode ser feito em apenas 1 único ciclo de clock);
Fora as otimizações mágicas que os gerenciadores de banco de dados fazem para ficarem menos lerdos.
Agora, diga-me: como fazer isso em arquivos XML? :roll:
Mas, já que eu “destrui” sua utopia, vou lhe dar outra. Ali em cima eu passei um link para um tópico interno do Prevayler. O Cv e eu especificamos uma linguagem de query para que se manipule seus na objetos em memória de maneira que seja totalmente neutra com relação à tecnologia usada na implementação do mecanismo de prevalência, ou seja, não importa se seu sistema está usando o Prevayler (Java) ou o Bamboo (.NET), a forma de se fazer a query nos seus objetos é a mesma. Se você se interessar em montar um engine para o Poquer, estamos aí.