<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>
O atributo initializer indica
onde a interface será utilizada. Por exemplo, a cadeia
"org.eclipse.ui.part.SiteInitializer" indica que a interface
é utilizada em um site de parte. Também poderíamos ter utilizado o "org.eclipse.ui.part.PartInitializer"
se a interface tivesse como objetivo que as próprias partes implementassem.
O atributo interface é o nome da interface. Ele deve corresponder exatamente ao tipo que o componente receberá em seu construtor. Se criarmos uma extensão que forneça Cadeias e um componente pedir um Objeto, ele não utilizará nossa extensão, embora ela seja de um tipo compatível.
O atributo implementation identifica a implementação padrão da interface. Ele aponta para uma classe de componentes que implementa a interface ou para um ComponentFactory que pode criá-las. Para obter informações adicionais, consulte a seção ComponentFactory. Essa implementação é utilizada para satisfazer uma dependência sempre que um componente pedir essa interface e ela não puder ser localizada em seu contexto pai. Todas as interfaces devem fornecer uma implementação padrão. Isto significa que um componente gravado corretamente sempre funcionará em um escopo fornecido, independentemente de quantas dependências são fornecidas pelo contexto pai. A implementação não pode substituir ou estender o atributo interface implementando interfaces adicionais. Outros componentes podem depender desse componente por meio de sua interface registrada, mas não podem depender diretamente da classe de implementação.
O atributo singleton indica se a implementação padrão é um singleton. Se verdadeiro, uma instância única será criada e compartilhada entre todos os outros componentes que precisam dela. Se falso, uma nova instância será criada para cada contêiner que precisa dela. Por exemplo, no caso de partes, singleton=:"false" significa que uma instância será criada para cada parte.