Generatori incrementali di progetto
Identificativo:
org.eclipse.core.resources.builders
Descrizione:
Lo spazio di lavoro supporta la nozione di un
generatore incrementale di progetto (abbreviato come "generatore"). Il
compito di questo generatore è di elaborare una serie di modifiche delle risorse
(fornite come un delta di risorse). Ad esempio, un generatore Java deve
ricompilare i file Java modificati e creare nuovi file di classe.
I generatori sono configurati in base ai singoli progetti e sono eseguiti
automaticamente quando le risorse del progetto sono modificate. In quanto
tali, i generatori devono essere rapidi e in scala rispetto alla quantità di
modifiche apportate piuttosto che al numero di risorse presenti nel progetto. Questo
implica che i generatori sono in grado di aggiornare lo "stato della
generazione" in maniera incrementale.
Il punto di estensione dei generatori consente a chi scrive un generatore di
registrarne l'implementazione con un nome simbolico da utilizzare dall'interno
dello spazio di lavoro per trovare ed eseguire generatori. Il nome simbolico rappresenta l'id dell'estensione del generatore. Durante la
definizione dell'estensione di un generatore, si consiglia all'utente di
includere un valore significativo per l'attributo "name", che identifica
il generatore.
Tag di configurazione:
<!ELEMENT extension (builder)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #REQUIRED
name CDATA #IMPLIED>
- point - identificativo completo del punto di estensione di
destinazione
- id - identificativo dell'istanza dell'estensione
- name - nome dell'istanza dell'estensione facoltativo
<!ELEMENT builder (run?)>
<!ATTLIST builder
hasNature (true | false)
isConfigurable (true | false) >
- hasNature - il valore "true" o "false" indica
se il generatore è proprio della natura del progetto. Se la condizione è
"true" e non viene trovata alcuna natura corrispondente, il generatore
non viene eseguito ma rimane nella specifica di generazione del progetto. Se
l'attributo non viene specificato, il valore assunto è "false".
- isConfigurable - il valore "true" o "false" indica se il generatore consente la personalizzazione per
l'attivazione dei trigger di generazione. Se impostato a "true", i client potranno utilizzare l'API
ICommand.setBuilding per specificare se il generatore deve essere eseguito per un particolare trigger di generazione. Se
l'attributo non viene specificato, il valore assunto è "false".
<!ELEMENT run (parameter*)>
<!ATTLIST run
class CDATA #REQUIRED>
- class - nome completo di una sottoclasse di
org.eclipse.core.resources.IncrementalProjectBuilder.
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
- name - il nome del parametro messo a disposizione di istanze della classe specificata di generatore
- value - un valore arbitrario associato al nome e messo a disposizione di istanze della classe specificata di generatore
Esempi:
Di seguito è riportato un esempio di configurazione del generatore:
<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>
Se questa estensione è stata definita in un plugin con identificativo "com.xyz.coolplugin", il nome completo del generatore sarà "com.xyz.coolplugin.coolbuilder".
Informazioni API:
Il valore dell'attributo class deve rappresentare una sottoclasse di org.eclipse.core.resources.IncrementalProjectBuilder.
Implementazione fornita:
La piattaforma non è dotata di alcun generatore predefinito. Installazioni particolari del prodotto potrebbero comprendere generatori secondo le esigenze.
Copyright (c) 2002, 2005 IBM Corporation e altri.
Tutti i diritti riservati. Questo programma e il materiale di accompagnamento sono disponibili secondo i termini della Eclipse Public
License v1.0 che sono distribuiti con il prodotto, e disponibili all'indirizzo
http://www.eclipse.org/legal/epl-v10.html