Przykład porównania - porównanie struktury pod kątem par klucz/wartość
Wprowadzenie
W tym przykładzie zaprezentowany jest sposób obsługi porównywania struktury dla plików złożonych z par klucz/wartość. Pokazano w nim, jak zaimplementować i zarejestrować niestandardowego twórcę struktury, który analizuje pary klucz/wartość i przedstawia je w postaci struktury drzewa, która jest używana jako wejście dla środowiska porównywania struktur udostępnionego przez moduł dodatkowy porównywania. Ponadto twórca ten rejestruje standardową przeglądarkę tekstową dla pojedynczych par klucz/wartość.
Poniższy przykład pełni jedynie funkcje demonstracyjne. Obsługa porównywania struktury dla plików właściwości Java (inny format klucz/wartość) jest udostępniona przez narzędzia Eclipse Java Tooling.
Wykonanie przykładu
- Utwórz projekt (niekoniecznie projekt Java).
- Utwórz plik par klucz/wartość o nazwie f1.kv.
- Wybierz kolejno opcje Okna > Preferencje > Środowisko robocze > Powiązanie pliku i powiąż domyślny edytor tekstu z rozszerzeniem pliku "kv".
- Otwórz plik f1.kv w edytorze i wprowadź poniższą treść.
lastname=Doe
firstname=John
city=Chicago
state=IL
- Utwórz kopię tego pliku i zmień jego nazwę na f2.kv.
- Otwórz plik o nazwie f2.kv i zmień wartość właściwości firstname z John na Mary.
- Dodaj nową parę klucz/wartość country=US do pliku f2.kv.
- Wybierz pliki f1.kv i f2.kv.
- Z menu kontekstowego wybierz opcje Porównaj z > Ze sobą.
- Otworzony zostanie nowy edytor porównywania pokazujący różnice w strukturze obu plików w górnym panelu. Wybranie jednej z właściwości firstname lub country powoduje umieszczenie tekstu odpowiedniej pary klucz/wartość w standardowej przeglądarce porównywania tekstu w dolnym panelu.
Organizacja kodu w przykładzie
Kod przykładu jest zorganizowany w pojedynczy pakiet org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
jest twórcą struktury, który analizuje treść strumienia i przedstawia ją w postaci drzewa złożonego z
elementów IStructureComparator.
- TextMergeViewerCreator
jest fabryką elementów TextMergeViewers. Jest zarejestrowany dla typu kvtxt, który jest typem pojedynczych par klucz/wartość.
- Util
udostępnia metody narzędziowe do obsługi wartości NLS i czytania strumienia wejściowego jako łańcucha.