Пример сравнения - Структурное сравнение для пар ключ-значение
Введение
Этот пример демонстрирует способ поддержки структурного сравнение файлов, состоящих из пар ключ-значение. Он
показывает, как реализовать и зарегистрировать пользовательское средство создания структуры, которое
анализирует пары ключ-значение и помещает их в древовидную структуру, которая используется в качестве входа
для среды структурного сравнения, предоставляемой модулем сравнения. Кроме того, он регистрирует стандартное
средство отображения текста для отдельных пар ключ-значение.
Этот пример предназначен только для иллюстрации. Поддержка структурного сравнения для файлов свойств Java
(другого формата ключ-значение) предоставляется Eclipse Java Tooling.
Запуск примера
- Создайте проект (не обязательно проект Java)
- Создайте файл пар ключ-значение f1.kv
- Откройте Окно > Параметры > Рабочая среда >
Связь файла и свяжите текстовый редактор по умолчанию с расширением файлов "kv"
- Откройте файл f1.kv с помощью этого редактора и введите следующую информацию:
lastname=Doe
firstname=John
city=Chicago
state=IL
- Создайте копию этого файла с именем f2.kv
- Откройте файл f2.kv и измените значение ключа firstname с "John" на "Mary"
- Добавьте в файл f2.kv еще одну пару ключ-значение: "country=US"
- Выберите и файл f1.kv, и файл f2.kv
- В контекстном меню выберите пункт Сравнить с > Друг с другом
- Откроется новый редактор сравнения, в верхней панели которого будут показаны структурные различия обоих
файлов. При выборе одного из свойств "firstname" или "country" текст соответствующей пары ключ-значение
появится в стандартном средстве отображения текста в нижней панели.
Организация кода данного примера
Код примера содержит единственный пакет org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
- это средство создания структуры, которое анализирует содержимое потока и помещает его в дерево интерфейсов
IStructureComparator.
- TextMergeViewerCreator
- это фабрика классов TextMergeViewer. Она регистрируется для типа "kvtxt", представляющего собой тип
отдельной пары ключ-значение.
- Util
предоставляет служебные методы для поддержки национальных языков (NLS) и для чтения входного потока
(InputStream) как строки (String).