Vertailuesimerkki - Avain/arvo-pareja koskeva rakennevertailu
Johdanto
Tämä esimerkki osoittaa, miten tuetaan rakennevertailua sellaisten tiedostojen osalta, jotka koostuvat avain/arvo-pareista. Se näyttää, miten toteutetaan ja rekisteröidään mukautettu rakenteen luontitoiminto, joka jäsentää avain/arvo-parit puurakenteeseen. Tätä puurakennetta käytetään vertailulisäosan antaman rakenteen vertailukehyksen syötteenä. Lisäksi se rekisteröi vakiotekstinkatseluohjelman yksittäisiä avain/arvo-pareja varten.
Tämä esimerkki on tarkoitettu vain esittelytarkoituksiin. Java-ominaisuustiedostojen rakenteen vertailua (toinen avain/arvo-muoto) tukevat Eclipse Java -työkalut.
Esimerkin ajo
- Luo projekti (ei välttämättä Java-projekti).
- Luo avain/arvo-parin tiedosto f1.kv.
- Avaa Ikkuna > Oletusasetukset > Työympäristö > Tiedostojen liitännät ja liitä oletusarvoiseen tekstinmuokkausohjelmaan tiedoston tunniste "kv".
- Avaa f1.kv muokkausohjelman avulla ja syötä tämä sisältö:
lastname=Doe
firstname=John
city=Chicago
state=IL
- Tee tästä tiedostosta kopio ja anna sille uusi nimi f2.kv.
- Avaa f2.kv ja muuta etunimen "John" tilalle "Mary".
- Lisää toinen avain/arvo-pari "country=US" f2.kv-tiedostoon.
- Valitse tiedostot f1.kv ja f2.kv.
- Valitse pikavalikosta Vertaa objektiin > Toisiinsa.
- Uusi vertailun muokkausohjelma avautuu, ja siinä näkyy yläruudussa kummankin tiedoston rakenne-erot. Kun valitaan ominaisuus "firstname" tai "country", vastaavan avain/arvo-parin teksti tulee näkyviin alaruudussa olevaan tekstinvertailun vakiokatseluohjelmaan.
Esimerkin koodirakenne
Esimerkkikoodi on järjestetty yhteen pakettiin org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
on rakenteen luontitoiminto, joka jäsentää tietovirran IStructureComparator-objektien rakenteeseen.
- TextMergeViewerCreator
on factory-metodi TextMergeViewers-luokkia varten. Se on rekisteröity tyyppiä "kvtxt" varten, joka on yksittäisen avain/arvo-parin tyyppi.
- Util
antaa apumetodeja NLS-tukea varten ja InputStream-tietovirran merkkijonona lukemista varten.