Σύγκριση ρυθμίσεων εκκίνησης

Είδαμε τον τρόπο με τον οποίο μια πρόσθετη λειτουργία μπορεί να χρησιμοποιήσει ονομασμένα γνωρίσματα και τιμές για την αποθήκευση σημαντικών δεδομένων με ρυθμίσεις εκκίνησης. Αφού η ερμηνεία των γνωρισμάτων μιας πρόσθετης λειτουργίας δεν είναι γνωστή από την πλατφόρμα, παρέχεται ένα σημείο επέκτασης το οποίο σας επιτρέπει την παροχή μιας ρουτίνας σύγκρισης για ένα συγκεκριμένο γνώρισμα. Αυτή η ρουτίνα σύγκρισης χρησιμοποιείται για να καθοριστεί εάν τα γνωρίσματα του καθορισμένου ονόματος είναι ίσα. Σε πολλές περιπτώσεις, η απλή σύγκριση σειράς χαρακτήρων που παρέχεται από το java.lang.Object.equals(Object) είναι κατάλληλη για τη σύγκριση γνωρισμάτων. Αυτή η τεχνική θα χρησιμοποιηθεί εάν δεν έχει παρασχεθεί κάποια ρουτίνα σύγκρισης. Ωστόσο, κάποιες τιμές γνωρισμάτων μπορεί να απαιτούν ειδικό χειρισμό, όπως η αφαίρεση των τιμών κενών διαστημάτων από το κείμενο πριν τη σύγκριση για ισότητα.

Οι ρουτίνες σύγκρισης συνεισφέρονται με τη χρήση του σημείου επέκτασης org.eclipse.debug.core.launchConfigurationComparators

Τα εργαλεία Java παρέχουν ρουτίνες σύγκρισης ρυθμίσεων εκκίνησης για τη σύγκριση διαδρομών πρωτογενούς κώδικα και διαδρομών κλάσεων των προγραμμάτων.

<extension point = "org.eclipse.debug.core.launchConfigurationComparators">
	<launchConfigurationComparator
		id = "org.eclipse.jdt.launching.classpathComparator"
		class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
		attribute = "org.eclipse.jdt.launching.CLASSPATH"/>
	<launchConfigurationComparator
		id = "org.eclipse.jdt.launching.sourcepathComparator"
		class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
		attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/>		
   </extension>

Οι ρουτίνες σύγκρισης πρέπει να υλοποιούν τη διεπαφή java.util.Comparator.