Eksempel på sammenligning - struktursammenligning af nøgle/værdipar
Introduktion
Dette eksempel illustrerer funktionen til struktursammenligning af filer, som består af nøgle/værdipar.
Det viser, hvordan du implementerer og registrerer en tilpasset strukturopretter, som analyserer nøgle/værdipar i en træstruktur, der bruges som input for den struktursammenligningsfunktion, der stilles til rådighed af plugin-funktionen til sammenligning.
Derudover registrerer den en standardtekstfremviser til de enkelte nøgle/værdipar.
Eksemplet er kun illustrativt. Understøttelse af struktursammenligning af Java-egenskabsfiler (et andet nøgle/værdiformat) stilles til rådighed af Eclipse Java Tooling.
Udfør eksemplet
- Opret et projekt (som ikke nødvendigvis skal være et Java-projekt)
- Opret nøgle/værdipar-filen f1.kv
- Åbn Vindue > Indstillinger > Arbejdsbænk > Filtilknytning, og tilknyt standardteksteditoren til filtypen "kv"
- Åbn f1.kv med editoren, og angiv følgende indhold
lastname=Doe
firstname=John
city=Chicago
state=IL
- Tag en kopi af filen, og omdøb den til f2.kv
- Åbn f2.kv, og revidér firstname "John" til "Mary"
- Tilføj endnu et nøgle/værdi-par "country=US" til f2.kv
- Vælg både filen f1.kv og filen f2.kv
- Vælg Sammenlign med > Hinanden på kontekstmenuen
- En ny sammenligningseditor åbnes, som viser strukturforskellene på filerne i det øverste delvindue.
Når du vælger en af egenskaberne "firstname" eller "country", indsættes teksten fra det tilsvarende nøgle/værdipar i fremviseren til sammenligning af standardtekst i nederste delvindue.
Kodeorganisering af eksemplet
Kodeeksemplet organiseres i en enkelt pakke,org.eclipse.compare.examples.structurecreator:
- KeyValuePairStructureCreator
er den strukturopretter, som analyserer indholdet af en strøm til en træstruktur i IStructureComparators.
- TextMergeViewerCreator
er en fabrik for TextMergeViewers. Den registreres for typen "kvtxt", som er typen på et enkelt nøgle/værdipar.
- Util
omfatter funktionsmetoder til NLS-understøttelse og til læsning af en 'InputStream' som en 'String'.