Pessoal,
Em um programa que estamos fazendo eu gero um XML em tempo de execução para descrever uma estrutura de dados que um dos componentes da empresa nos força a utilizar.
A pessoa define a classe e essa classe será depois traduzida em XML e persistida em disco. A classe em si já faz todo o papel, mas precisamos ter esse arquivo XML criado e atualizado.
Como essa classe é utilizada muitas vezes queria minimizar o overhead da checagem (ou re-criação) do arquivo.
Pensei em gravar um atributo VERSION no rootNode do XML e ter esse mesmo VERSION na classe Java, e quando for utilizar o XML verificar se o arquivo existe e se existe tem a mesma versao da classe, se nao tiver (ou nao existir) eu recrio o arquivo do zero.
Nao fiz nenhum teste, mas acho que para carregar um arquivo com JDOM soh para verificar a versao deve ser algo bem custoso e embora eu esteja utilizando esse enfoque, acho que nao deve ser nada otimizado.
Importante, NAO POSSO colocar a versao no NOME do arquivo, que foi algo que pensei, ficaria assim: NOME_ARQUIVO+VERSION+".xml"; Mas infelizmente não posso fazer isso.
Então coloquei a versao como um atributo no rootNode.
Apesar de estar funcionando, gostaria de sugestoes do pessoa de como melhorar essa implementacao, pois preciso manter o arquivo XML sincronizado com a classe (O XML representa todos os campos, tipos e tamanhos que estao na classe), mas gostaria de ter o menos impacto possivel sobre a performance.
Alguem tem alguma sugestao?
Obrigado