Täydentävät projektin koontitoiminnot

org.eclipse.core.resources.builders

Työtila tukee täydentäviä projektien koontitoimintoja (jäljempänä pelkkä koontitoiminto). Koontitoiminto käsittelee resurssijoukkojen (delta-tietoina toimitetut) muutokset. Esimerkiksi Java-koontitoiminto voisi koota muuttuneet Java-tiedostot uudelleen ja luoda uudet luokkatiedostot.

Koontitoiminnot määritetään projektikohtaisesti ja ne ajetaan automaattisesti, kun projektin resurssit muuttuvat. Tämän takia koontitoiminnot ovat nopeita, sillä niiden nopeus hidastuu suhteessa muutosten määrään eikä projektin resurssien määrään. Koska koontitoiminnot siis tekevät koontitilaan vain lisäyspäivityksiä, niitä kutsutaan täydentäviksi.

Koontitoimintojen laajennuspisteen avulla koontitoimintojen luojat voivat rekisteröidä koontitoimintototeutukselleen symbolisen nimen, jonka perusteella työtila etsii ja ajaa kyseisen koontitoiminnon. Symbolinen nimi on koontitoimintolaajennuksen tunnus. Koontitoimintolaajennusten name-määritteelle kannattaa antaa arvo, sillä se kuvaa koontitoiminnon tarkoitusta ja se saatetaan näyttää käyttäjille.

<!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>


Seuraavassa on esimerkki koontitoiminnon merkintärakenteesta:

   

<extension id=

"coolbuilder"

name=

"Hieno koontitoiminto"

point=

"org.eclipse.core.resources.builders"

>

<builder hasNature=

"false"

>

<run class=

"com.xyz.builders.Cool"

>

<parameter name=

"optimize"

value=

"true"

/>

<parameter name=

"comment"

value=

"Upean ohjelmoijan hieno koontitoiminto"

/>

</run>

</builder>

</extension>

Jos tämä koontitoimintolaajennus lisättäisiin com.xyz.coolplugin-lisäosaan, tämän koontitoiminnon tarkka nimi olisi com.xyz.coolplugin.coolbuilder.

Class-määritteen arvon on vastattava org.eclipse.core.resources.IncrementalProjectBuilder-luokan aliluokkaa.

Varsinaisessa käyttöympäristössä ei ole valmiiksi määritettyjä koontitoimintoja. Tiettyihin tuoteasennuksiin voi sisältyä koontitoimintoja.