Vergleichsbeispiel - Strukturvergleich für Schlüssel/Wert-Paare

Einführung

Dieses Beispiel zeigt, wie der Strukturvergleich für Dateien, die Schlüssel/Wert-Paare enthalten, zu unterstützen ist. Es zeigt, wie ein angepasster Strukturersteller zu implementieren und registrieren ist, der Schlüssel/Wert-Paare in einer Baumstruktur syntaktisch analysiert, die als Eingabe für das Strukturvergleichsgerüst verwendet wird, das durch das Vergleichs-Plug-in zur Verfügung gestellt wird. Zusätzlich registriert es eine standardmäßige Textanzeigefunktion für die individuellen Schlüssel/Wert-Paare.

Das Beispiel ist lediglich zur Veranschaulichung gedacht. Die Unterstützung des Strukturvergleichs für Java-Eigenschaftendateien (ein anderes Schlüssel/Wert-Format) wird durch Eclipse Java Tooling zur Verfügung gestellt.

Beispiel ausführen

  1. Ein Projekt erstellen (nicht unbedingt ein Java-Projekt)
  2. Erstellen Sie eine Schlüssel/Wert-Paar-Datei 'f1.kv'.
  3. Öffnen Sie Fenster > Benutzervorgaben > Workbench > Dateizuordnung und ordnen Sie den Standardtexteditor der Dateierweiterung 'kv' zu.
  4. Öffnen Sie 'f1.kv' mit dem Editor und geben Sie diesen Inhalt ein:
    lastname=Doe
    firstname=John
    city=Chicago
    state=IL
    
  5. Erstellen Sie eine Kopie dieser Datei und benennen Sie sie in 'f2.kv' um.
  6. Öffnen Sie 'f2.kv' und ändern Sie den Vornamen "John" in "Mary".
  7. Fügen Sie ein anderes Schlüssel/Wert-Paar "country=US" zu f2.kv hinzu.
  8. Wählen Sie die beiden Dateien 'f1.kv' und 'f2.kv' aus.
  9. In dem Kontextmenü wählen Sie Vergleichen mit > einander aus.
  10. Ein neuer Vergleichseditor wird geöffnet, der die strukturellen Unterschiede zwischen beiden Dateien in seinem oberen Teilfenster anzeigt. Durch Auswählen einer der Eigenschaften "Vorname" oder "Bundesstaat" wird der Text des entsprechenden Schlüssel/Wert-Paars in das untere Teilfenster des standardmäßigen Textvergleichseditors eingefügt.

Codeaufbau im Beispiel

Der Beispielcode ist in einem einzelnen Paket org.eclipse.compare.examples.structurecreator enthalten: