Exemplo de Comparação - Comparação Estrutural de Pares de Chave/Valor
Introdução
Este exemplo demonstra como fornecer suporte para comparação estrutural de arquivos que
consistem em pares de chave/valor. Ele mostra como implementar e registrar um criador de
estruturas personalizado que analisa pares de chave/valor em uma estrutura em árvore
utilizada como entrada para a estrutura de comparação estrutural fornecida pelo plugin
Comparar. Além disso, ele registra um visualizador de texto padrão para os pares
individuais de chave/valor.
Esse exemplo é usado somente para demonstração. O suporte de comparação estrutural para
arquivos de propriedade Java (outro formato de chave/valor) é fornecido pelo Eclipse Java
Tooling.
Executando o exemplo
- Crie um projeto (não necessariamente um projeto Java)
- Crie um arquivo f1.kv de par de chave/valor
- Abra Janela > Preferências >
Workbench > Associação de Arquivos e associe o
editor de texto padrão à extensão de arquivo "kv"
- Abra o arquivo f1.kv com o editor e digite este conteúdo:
sobrenome=Doe
nome=John
cidade=Chicago
estado=IL
- Faça uma cópia desse arquivo e renomeie-o como f2.kv
- Abra o arquivo f2.kv e altere o nome "John" para "Mary"
- Adicione outro par de chave/valor "país=US" ao arquivo f2.kv
- Selecione ambos os arquivos f1.kv e f2.kv
- No menu de contexto, selecione Comparar com > Um com o
outro
- Um novo editor de comparação é aberto mostrando as diferenças estruturais de ambos
os arquivos na área de janela superior. A seleção de uma das propriedades "nome" ou
"país" faz com que o texto seja avançado do par de chave/valor correspondente para o
visualizador de comparação de texto padrão, na parte inferior da área de janela.
Organização do código do exemplo
O código de exemplo está organizado em um único pacote org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
é o criador de estruturas que analisa o conteúdo de um fluxo em uma árvore
de IStructureComparators.
- TextMergeViewerCreator
é um factory de TextMergeViewers. Está registrado para o tipo "kvtxt", que é um tipo de
par individual de chave/valor.
- Util
fornece métodos de utilitário para suporte NLS e para leitura de um InputStream como uma
Cadeia.