<extension
point="org.eclipse.core.component.types">
<component
initializer="org.eclipse.ui.part.SiteInitializer"
interface="org.eclipse.ui.part.services.INameable"
implementation="org.eclipse.ui.internal.part.services.NullNameableService"
singleton="true"
/>
</extension>
initializer 属性は、インターフェースが使用される場所を指示しています。
例えば、ストリング "org.eclipse.ui.part.SiteInitializer" は、インターフェースがパーツのサイトで使用されることを意味します。
パーツ自体をインプリメントするようにインターフェースで意図していた場合は、"org.eclipse.ui.part.PartInitializer" も使用できます。
interface 属性は、インターフェースの名前です。
これは、コンポーネントがそのコンストラクター内で受信するタイプに完全に一致する必要があります。
ストリングを提供する拡張を作成する場合にコンポーネントがオブジェクトを要求する場合、互換タイプであってもその拡張は使用されません。
implementation 属性は、インターフェースのデフォルトの実装を示しています。
これは、インターフェースを実装するコンポーネント・クラス、またはそれを作成できる ComponentFactory のいずれかを指し示します。
詳しくは、ComponentFactory のセクションを参照してください。
この実装は、コンポーネントがこのインターフェースを要求し、その親コンテキストで検出できない場合にいつも、依存関係を満たすために使用されます。
すべてのインターフェースは、デフォルトの実装を提供する必要があります。
これは、正しく作成されたコンポーネントが、その親コンテキストにより提供される依存関係の数に関係なく、特定のスコープで動作することを意味します。
その実装は、追加のインターフェースを実装することによって、インターフェース属性をオーバーライドまたは拡張することはできません。
その他のコンポーネントは、その登録済みインターフェースを経由してこのコンポーネントに依存できますが、実装クラスには直接依存できません。
singleton 属性は、デフォルトの実装が singleton であるかどうかを示します。
true である場合は、単一インスタンスが作成され、それを必要とするその他のすべてのコンポーネントで共用されます。
false の場合は、新規のインスタンスが、それを必要とするそれぞれのコンテナーごとに作成されます。
例えばパーツの場合、singleton=:"false" により、1 つのインスタンスがパーツごとに作成されます。