比較範例 - 鍵值配對的結構性比較
簡介
這個範例示範如何針對包含鍵值配對的檔案來支援結構性比較。此範例顯示如何實作和登錄自訂結構建立者,
其可將鍵值配對剖析到樹狀結構,當作由「比較」外掛程式所提供的結構性比較組織架構的輸入使用。此外,它還為個別鍵值配對登錄標準文字檢視器。
這個範例只作為示範。Java 內容檔(另一種鍵值格式)的結構性比較支援由 Eclipse Java Tooling 所提供。
執行範例
- 建立專案(並非一定要是 Java 專案)
- 建立鍵值配對檔 f1.kv
- 開啟視窗 > 喜好設定 > 工作台 > 檔案關聯,
並將預設文字編輯器與副檔名 "kv" 建立關聯性。
- 以編輯器開啟 f1.kv,並輸入下列內容
lastname=Doe
firstname=John
city=Chicago
state=IL
- 複製這個檔案,然後重新命名成 f2.kv
- 開啟 f2.kv,並把名字從 "John" 改成 "Mary"
- 將另一個鍵值配對 "country=US" 新增至 f2.kv
- 同時選取 f1.kv 檔和 f2.kv 檔
- 在快速功能表中選取相互比較 > 彼此
- 此時會開啟一個新的比較編輯器,在頂端窗格顯示兩個檔案的結構性差異。選取其中一個內容("firstname" 或 "country")會將相對應的鍵值配對文字,提供至底端窗格中的標準文字比較檢視器。
範例的程式碼組織
程式碼範例組織在單一套件 org.eclipse.compare.examples.structurecreator 中:
- KeyValuePairStructureCreator
是將串流內容剖析至 IStructureComparator 樹狀結構的結構建立者。
- TextMergeViewerCreator
是 TextMergeViewers 的 Factory。它是針對 "kvtxt" 類型而登錄的(kvtxt 是個別鍵值配對的類型)。
- Util
提供公用程式方法,以供 NLS 支援並將 InputStream 讀取成 String。