Vergelijkingsvoorbeeld - Structurele vergelijking van Sleutel/waarde-paren
Inleiding
In dit voorbeeld wordt gedemonstreerd hoe u de structurele vergelijking kunt ondersteunen voor bestanden die uit sleutel/waarde-paren bestaan. Het geeft aan hoe u een aangepaste structuurmaker kunt implementeren en registreren waarmee sleutel/waarde-paren worden ontleed in een boomstructuur dat wordt gebruikt als de invoer van het structurele vergelijkingsframework van de plugin Vergelijken.
Daarnaast wordt een standaardtekstviewer geregistreerd voor de afzonderlijk sleutel/waarde-paren.
Dit voorbeeld is alleen bedoeld als demonstratie. Ondersteuning voor structureel vergelijken voor Java-eigenschappenbestanden (een andere sleutel/waarde-indeling) wordt geboden door Eclipse Java Tooling.
Het voorbeeld uitvoeren
- Maak een project (niet noodzakelijkerwijs een Java-project)
- Maak een sleutel/waarden-paarbestand f1.kv
- Open Venster > Voorkeuren > Workbench > Bestandskoppeling en koppel de standaard-teksteditor aan de bestandsextensie "kv"
- Open f1.kv met de editor en voer deze inhoud in.
achternaam=Doe
voornaam=John
plaats=Chicago
staat=IL
- Maak een kopie van dit bestand en wijzig de naam in f2.kv
- Open f2.kv en wijzig de voornaam van "John" in "Mary"
- Voed een ander sleutel/waarde-paar "country=US" toe aan f2.kv
- Selecteer beide bestanden f1.kv en f2.kv
- In het contextmenu selecteert u Vergelijken met > Elkaar
- Er wordt een nieuwe vergelijkingseditor geopend waarmee de structurele verschillen tussen beide bestanden in het bovenste venster worden afgebeeld.
Als u een van de eigenschappen "voornaam" of "land" selecteert, wordt de tekst van het bijbehorende sleutel/waarde paar in de standaardtekst-vergelijkinmgsviewer in het onderste venster ingevoerd.
Code-organisatie van het voorbeeld
De voorbeeldcode bestaat uit een enkel pakket org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
is de structuurmaker waarmee de inhoud van een stroom wordt ontleed naar een boom van IStructureComparators.
- TextMergeViewerCreator
is een factory voor TextMergeViewers. Het is geregistreerd voor het type "kvtxt" dat het type is van een afzonderlijk sleutel/waarde-paar.
- Util
bevat utility-methoden voor NLS-ondersteuning en voor het lezen van InputStream als een tekenreeks.