Utökningspunkter och registret

Vi har sett att de olika aspekterna av samlingar för ett insticksprogram kan vara intressanta i samband med insticksprogram och verktyg för runtime-miljön, men när det gäller insticksprogrammen är det mycket vanligare att det behövs information om vilka utökningspunkter som har definierats av insticksprogrammen och vilka utökningar som tillhandahålls av insticksprogram. Den här informationen tillhandahålls av plattformens utökningsregister, IExtensionRegistry.

Varför kan det vara bra att ett insticksprogram har information om vilka utökningar som finns? Ett konkret exempel kan visa behovet av den här information och vilket protokoll som används till att hämta den.

Anropa dialogrutan Visa vy i arbetsmiljön där du kan se alla tillgängliga vyer som har installerats på plattformen.

Dialogrutan Visa vy med posten Hej

Vi vet att kategorinamnen och visningsnamnen på alla tillhandahållna vyer har angetts i filen plugin.xml för alla insticksprogram som bidrar med en utökning för org.eclipse.ui.views. Men hur ska arbetsmiljön få den här informationen? Det får den från plattformens utökningsregister. Koden nedan är ett förenklat kodstycke baserat på arbetsmiljöns implementering av dialogrutan Visa vy:

	...
	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]);  //hämta information om varje utökning
	...

Ovan ser vi att registret kan hämtas från klassen Platform. Protokollet i IExtensionRegistry används till att söka efter utökningspunkten org.eclipse.ui.views. Information i registret om särskilda utökningspunkter eller utökningar kan hittas med hjälp av det protokoll som definieras i IExtensionRegistry, IExtensionPoint och IExtension. Javadoc-dokumentet för de här klasserna innehåller detaljerad information om registerprotokollet.

När definitionen av den utökning vi är intresserade av har hittats kan vi använda protokollet i IConfigurationElement till att undersöka enskilda attribut för en utökning.