Construtores Incrementais de Projectos

org.eclipse.core.resources.builders

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.

<!ELEMENT extension (builder)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT builder (run?)>

<!ATTLIST builder

hasNature      (true | false)

isConfigurable (true | false) >


<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


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".

O valor do atributo class tem de representar uma subclasse de org.eclipse.core.resources.IncrementalProjectBuilder.

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.