Construtores Incrementais de Projectos
Identificador:
org.eclipse.core.resources.builders
Descrição:
A área de trabalho suporta o conceito de um construtor incremental de projectos (ou "construtor", para abreviar). A função de um construtor é processar um conjunto de alterações a recursos (facultadas como delta de recursos). Por exemplo, um construtor Java recompilaria ficheiros Java alterados e geraria novos ficheiros de classes.
É configurado um construtor por cada projecto, sendo automaticamente executado quando os recursos dentro dos projectos são alterados. Como tal, os construtores devem ser rápidos e possui escalabilidade proporcional à quantidade de alterações e não ao número de recursos do projecto. Isto normalmente implica que os construtores podem actualizar de modo crescente o seu "estado de construção".
O ponto de extensão dos construtores permite aos autores de construtores registarem a implementação de construtor com um nome simbólico, que depois é utilizado no interior da área de trabalho para encontrar e executar construtores. O nome simbólico é o id da extensão do construtor. Ao definir uma extensão de construtor, os utilizadores são incentivados a incluir um valor legível por pessoas para o atributo "name", que identifique o construtor e que possa ser, eventualmente, apresentado aos utilizadores.
Marcação da Configuração:
<!ELEMENT extension (builder)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #REQUIRED
name CDATA #IMPLIED>
- point - um identificador totalmente qualificado do ponto de extensão de destino
- id - um identificador opcional da instância de extensão
- name - um nome opcional da instância de extensão
<!ELEMENT builder (run?)>
<!ATTLIST builder
hasNature (true | false)
isConfigurable (true | false) >
- hasNature - "true" ou "false" indicam se o construtor é detido por uma natureza de projecto. Caso o valor seja "true" e não seja encontrada qualquer natureza correspondente, este construtor não será executado, mas permanecerá na especificação de construção do projecto. Caso o atributo não seja especificado, é utilizado o valor false".
- isConfigurable - "true" ou "false" indicam se o construtor permite a personalização dos activadores de construção aos quais irá responder. Caso o valor seja true", os clientes poderão utilizar a API ICommand.setBuilding para especificar se este construtor deve ser executado para um activador de construção específico. Caso o atributo não seja especificado, é utilizado o valor false".
<!ELEMENT run (parameter*)>
<!ATTLIST run
class CDATA #REQUIRED>
- class - o nome totalmente qualificado de uma subclasse de org.eclipse.core.resources.IncrementalProjectBuilder.
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
- name - o nome deste parâmetro disponibilizado às instâncias-objecto da classe de construtor especificada
- value - um valor arbitrário associado ao nome estabelecido e disponibilizado às instâncias-objecto da classe de construtor especificada
Exemplos:
De seguida é apresentado um exemplo de uma configuração de construtor:
<extension id=
"coolbuilder"
name=
"Cool Builder"
point=
"org.eclipse.core.resources.builders"
>
<builder hasNature=
"false"
>
<run class=
"com.xyz.builders.Cool"
>
<parameter name=
"optimize"
value=
"true"
/>
<parameter name=
"comment"
value=
"Produced by the Cool Builder"
/>
</run>
</builder>
</extension>
Caso esta extensão tenha sido definida num plug-in com o id "com.xyz.coolplugin", o nome totalmente qualificado deste construtor seria "com.xyz.coolplugin.coolbuilder".
Informações de API:
O valor do atributo class tem de representar uma subclasse de org.eclipse.core.resources.IncrementalProjectBuilder.
Implementação Facultada:
A plataforma em si não possui quaisquer construtores predefinidos. As instalações de um determinado produto poderão incluir construtores, consoante for necessário.
Copyright (c) 2002, 2005 IBM Corporation e outros.
Todos os direitos reservados. Este programa e os materiais que o acompanham estão disponíveis sob os termos da Eclipse Public License v1.0, que acompanha esta distribuição, e estão disponíveis em http://www.eclipse.org/legal/epl-v10.html