Startkonfigurationen vergleichen

Wir haben gesehen, wie ein Plug-in benannte Attribute und Werte verwenden kann, um wichtige Daten mit einer Startkonfiguration zu speichern. Da die Interpretation der Attribute eines Plug-ins der Plattform nicht bekannt ist, wird ein Erweiterungspunkt bereitgestellt, über den ein Vergleichsoperator für ein bestimmtes Attribut zur Verfügung gestellt werden kann. Dieser Vergleichsoperator wird verwendet, um zu bestimmen, ob Attribute mit den angegebenen Namen gleich sind. In vielen Fällen genügt der einfache Vergleich von Zeichenfolgen, den java.lang.Object.equals(Object) bietet, um Attribute zu vergleichen. Diese Methode wird verwendet, wenn kein Vergleichsoperator angegeben wurde. Es kann allerdings vorkommen, dass manche Attributswerte eine Sonderverarbeitung erfordern, z.B. die Entfernung von Leerzeichen aus Texten, bevor diese auf Gleichheit verglichen werden.

Vergleichsoperatoren werden über den Erweiterungspunkt org.eclipse.debug.core.launchConfigurationComparators bereitgestellt. 

Die Java-Tools bieten Vergleichsoperatoren für Startkonfigurationen, mit denen Quellenpfade und Klassenpfade von Programmen verglichen werden können.

<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>

Vergleichsoperatoren müssen die Schnittstelle java.util.Comparator implementieren.