Παράδειγμα σύγκρισης - Δομική σύγκριση ζευγών κλειδιού/τιμής

Εισαγωγή

Αυτό το παράδειγμα δείχνει τον τρόπο υποστήριξης της δομικής σύγκρισης αρχείων που αποτελούνται από ζεύγη κλειδιού/τιμής. Παρουσιάζει τον τρόπο υλοποίησης και καταχώρησης μιας προσαρμοσμένης λειτουργίας δημιουργίας δομής η οποία αναλύει τα ζεύγη κλειδιού/τιμής σε μια δομή διακλάδωσης που χρησιμοποιείται ως είσοδος στο πλαίσιο δομικής σύγκρισης που παρέχεται από την πρόσθετη λειτουργία σύγκρισης. Επιπρόσθετα, καταχωρεί μια τυπική λειτουργία προβολής κειμένου για τα μεμονωμένα ζεύγη κλειδιού/τιμής.

Αυτό το παράδειγμα είναι μόνο για λόγους επίδειξης. Η υποστήριξη δομικής σύγκρισης για αρχεία ιδιοτήτων Java (άλλη μορφή κλειδιού/τιμής) παρέχεται από τα "Εργαλεία ανάπτυξης Eclipse Java".

Εκτέλεση του παραδείγματος

  1. Δημιουργήστε ένα έργο (όχι απαραίτητα ένα έργο Java)
  2. Δημιουργήστε ένα αρχείο ζεύγους κλειδιού/τιμής f1.kv
  3. Ανοίξτε το Παράθυρο > Προτιμήσεις > Πάγκος εργασίας > Συσχέτιση αρχείων και συσχετίστε την προεπιλεγμένη λειτουργία επεξεργασίας κειμένου με την προέκταση αρχείου "kv"
  4. Ανοίξτε το f1.kv με τη λειτουργία επεξεργασίας και καταχωρήστε αυτά τα περιεχόμενα
    lastname=Doe
    firstname=John
    city=Chicago
    state=IL
    
  5. Δημιουργήστε ένα αντίγραφο αυτού του αρχείου και μετονομάστε το σε f2.kv.
  6. Ανοίξτε το f2.kv και αλλάξτε το firstname από "John" σε "Mary"
  7. Προσθέστε άλλο ένα ζεύγος κλειδιού/τιμής "country=US" στο f2.kv
  8. Επιλέξτε και τα δυο αρχεία f1.kv και f2.kv
  9. Από το μενού περιβάλλοντος επιλέξτε Σύγκριση με > Μεταξύ τους
  10. Ανοίγει μια νέα λειτουργία επεξεργασίας σύγκρισης η οποία εμφανίζει τις δομικές διαφορές των δυο αρχείων στο κορυφαίο τμήμα παραθύρου. Επιλέγοντας μια από τις ιδιότητες "firstname" ή "country" τροφοδοτείται το κείμενο του αντίστοιχου ζεύγους κλειδιού/τιμής στην τυπική λειτουργία προβολής σύγκρισης κειμένου στο τμήμα παραθύρου στο τέλος.

Οργάνωση κώδικα του παραδείγματος

Ο κώδικας παραδείγματος οργανώνεται σε ένα μοναδικό πακέτο org.eclipse.compare.examples.structurecreator: