A struktúraösszefésülés-megjelenítő két vagy három lépésben összehasonlítja a bemeneteket, az eredményt hierarchikus nézetben jeleníti meg, és lehetővé teszi, hogy a felhasználó összefésüléseket végezzen a bemenetek között. A struktúraösszefésülés-megjelenítők közösek a munkaterület-erőforrásokhoz és az archív fájl tagjai számára.
Mivel számos struktúraösszehasonlítás-megjelenítő megvalósítása fára épül, az összehasonlítás-bedolgozó egy általános fa alapú StructureDiffViewer elemet biztosít. A bedolgozó a struktúralétrehozó biztosításáért felelős, amely a bemeneti objektumot hierarchikus struktúrára bontja. A StructureDiffViewer végrehajtja az összehasonlítást az eredményül kapott struktúrán és az eredményt faként jelenítik meg.
A org.eclipse.compare.structureCreators kiterjesztés segítségével kijelölhet egy sruktúralétrehozót a bedolgozóhoz. A tartalom-megjelenítőkhöz hasonlóan megadható egy struktúralétrehozó a fájlkiterjesztés-halmazhoz, vagy a contentTypeBinding segítségével a tartalomtípus hozzárendelhető egy adott struktúralétrehozóhoz. Itt nem tekintjük át a leírónyelvet, mert nagyon hasonló a tartalom-megjelenítőkhöz. A JDT bedolgozó számos hozzájárulást ad meg az org.eclipse.compare.structureCreators elemhez.
Néhány esetben a fa alapú StructureDiffViewer nem felel meg a bedolgozónak. A org.eclipse.compare.structureMergeViewers kiterjesztési pont segítségével saját megvalósítást adhat meg egy struktúraösszefésülés-megjelenítőhöz. A fájlkiterjesztésekhez megadható egy struktúraösszefésülés-megjelenítő, vagy a contentTypeBinding segítségével tartalomtípus rendelhető egy adott struktúraösszefésülés-megjelenítőhöz. Az org.eclipse.compare.structureMergeViewers közreadások példáit a JDT bedolgozó tartalmazza.
A keresés bedolgozó számos segédprogram-osztályt biztosít a keresésmegjelenítő megvalósításához.
Különbségkimutató egy különbségkimutató alrendszer a hierarchikusan strukturált adatokhoz. Két vagy három bemenetet vesz, és két vagy három lépéses összehasonlítást hajt végre rajtuk.
Ha a különbségkimutató alrendszer bemeneti elemei megvalósítják az IStructureComparator felületet, akkor az alrendszer rekurzív módon alkalmazza magát a bemeneti elemek leszármazottaira. A levélelemeknek meg kell valósítaniuk az IStreamContentAccessor felületet, így a különbségkimutató egy byteszintű összehasonlítást hajthat végre a tartalmon.
A platformmegvalósítás számos jó különbségkimutató-példát tartalmaz:
Alapértelmezés szerint a különbségkimutató alrendszer az összehasonlítás művelet eredményét DiffNode objektumok fájaként adja vissza. A DiffNode leírja a két vagy három bemenet változásait. Az eredményül kapott csomópontok típusa az alrendszer metódusának felülírásával módosítható.
A DiffNode csomópontok fája megjeleníthető a DiffTreeViewer elemben. A DiffTreeViewer megköveteli, hogy a fa belső csomópontjai megvalósítsák az IDiffContainer felületet, a levelek pedig az IDiffElement felületet.
Jellemző lépések a hierarchikusan strukturált adatok összehasonlításához és a különbségek megjelenítéséhez:
A StructureDiffViewer egy speciális DiffTreeViewer, amely automatizálja a fenti lépéseket. Vesz egy ICompareInput típusú bemeneti objektumot, amelyből lekéri a két vagy három összehasonlítandó bemeneti elemet. Egy IStructureCreator elemet használ a IStructureComparator és IStreamContentAccessor objektumokat tartalmazó fa kibontásához. Ezek a fák ezután összehasonlításra kerülnek a különbségkimutató alrendszerrel és az eredmény megjelenik a famegjelenítőben.
A ZipFileStructureCreator a IStructureCreator felület megvalósítása, és elérhetővé teszi a zip archív fájl tartalmát a IStructureComparator hierarchikus struktúrájaként, amely a különbségkimutató alrendszer segítségével (Differencer) egyszerűen összehasonlítható. Jó példa arra, hogy a strukturált fájlok hogyan tehetők elérhetővé az összehasonlítás bedolgozó hierarchikus összehasonlítás funkciójához.