Σημεία επέκτασης και μητρώο

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

Γιατί όμως μια πρόσθετη λειτουργία να θέλει να γνωρίζει ποιες επεκτάσεις είναι παρούσες; Με τη βοήθεια ενός συγκεκριμένου παραδείγματος θα καταδείξουμε την ανάγκη παροχής αυτών των πληροφοριών καθώς και το πρωτόκολλο για τη λήψη τους.

Θυμηθείτε το πλαίσιο διαλόγου Εμφάνιση προβολής του πάγκου εργασίας το οποίο παρουσιάζει όλες τις διαθέσιμες προβολές που έχουν εγκατασταθεί στην πλατφόρμα.

Πλαίσιο διαλόγου εμφάνισης προβολής με την καταχώρηση Hello

Ξέρουμε ότι τα ονόματα κατηγορίας και τα ονόματα προβολής όλων των προβολών που συνεισφέρονται καθορίζονται στο αρχείο plugin.xml για οποιαδήποτε πρόσθετη λειτουργία συνεισφέρει μια επέκταση για το σημείο επέκτασης org.eclipse.ui.views. Πώς όμως ο πάγκος εργασίας εντοπίζει αυτές τις πληροφορίες; Τις εντοπίζει από το μητρώο επέκτασης της πλατφόρμας. Ο κώδικας που ακολουθεί είναι ένα απλοποιημένο τμήμα κώδικα στην υλοποίηση πάγκου εργασίας του πλαισίου διαλόγου Εμφάνιση προβολής:

	...
	IExtensionRegistry registry = Platform.getExtensionRegistry();
	IExtensionPoint point = registry.getExtensionPoint("org.eclipse.ui.views");
	if (point == null) return;
	IExtension[] extensions = point.getExtensions();
	for (int i = 0; i < extensions.length; i++)
		readExtension(extensions[i]);  //get the information about each extension
	...

Είδαμε παραπάνω ότι μπορείτε να αποκτήσετε το μητρώο από την κλάση Platform. Το πρωτόκολλο στην κλάση IExtensionRegistry χρησιμοποιείται για τον εντοπισμό του σημείου επέκτασης με όνομα org.eclipse.ui.views. Μπορείτε να βρείτε πληροφορίες στο μητρώο σχετικά με συγκεκριμένα σημεία επέκτασης ή επεκτάσεις με χρήση του πρωτοκόλλου που ορίζεται στην κλάση IExtensionRegistry, IExtensionPoint και IExtension. Το javadoc για αυτές τις κλάσεις παρέχει λεπτομερείς πληροφορίες σχετικά με το πρωτόκολλο μητρώου.

Μόλις εντοπιστεί ο σχετικός ορισμός επέκτασης, μπορείτε να χρησιμοποιήσετε το πρωτόκολλο IConfigurationElement προκειμένου να εξετάσετε τα μεμονωμένα γνωρίσματα μιας επέκτασης.