Exemplo de Comparação - Comparação Estrutural para Pares Chave/Valor
Introdução
Este exemplo demonstra como suportar comparações estruturais para ficheiros que consistem em pares de chave/valor. Mostra como implementar e registar um criados de estrutura comum que analise pares de chave/valor numa estrutura em árvore, que é utilizada como entrada da infra-estrutura de comparação estrutural fornecida pelo conector Compare. Além disso, regista um visualizador de texto padrão para os pares individuais de chave/valor.
Este exemplo serve apenas como demonstração. O suporte de comparação estrutural para ficheiros de propriedades Java (outro formato de chave/valor) é fornecido pelo Eclipse Java Tooling.
Executar o exemplo
- Criar um projecto (não tem de ser obrigatoriamente um projecto Java)
- Criar um ficheiro de par de chave/valor f1.kv
- Abrir Janela > Preferências > Ambiente de Trabalho > Associação de Ficheiros e associar o editor de texto predefinido com a extensão de ficheiro "kv".
- Abrir f1.kv com o editor e inserir o conteúdo
lastname=Doe
firstname=John
city=Chicago
state=IL
- Copiar este ficheiro e dar-lhe um novo nome, f2.kv.
- Abrir o ficheiro f2.kv e alterar o primeiro nome "John" para "Mary"
- Adicionar outro par de chave/valor "country=US" a f2.kv.
- Seleccionar ambos os ficheiros f1.kv e f2.kv
- No menu de contexto, seleccionar Comparar Com > Um com o outro.
- Abre-se um novo editor de comparação que mostra as diferenças estruturais de ambos os ficheiros na área superior da janela. Seleccionar uma das propriedades "firstname" ou "country" insere o texto do par chave/valor correspondente no visualizador de comparação de texto padrão na área inferior da janela.
Organização de código do exemplo
O código de exemplo está organizado num pacote único, org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
é o criador de estruturas que analisa o conteúdo de uma sequência numa árvore do IStructureComparators.
- TextMergeViewerCreator
é uma fábrica de TextMergeViewers. É registado para o tipo "kvtxt", que é o tipo de par chave/valor individual.
- Util
fornece métodos de utilidade para suporte NLS e para ler InputStream como uma cadeia.