Projektin kuvaustiedosto

Kuvaus: Kun projekti luodaan työtilassa, luodaan automaattisesti projektin kuvaustiedosto, jossa kuvataan projekti.  Tämän tiedoston tarkoituksena on tehdä projektista itsekuvaava siten, että pakattu tai palvelimelle siirretty projekti voidaan luoda uudelleen oikein toisessa työtilassa.  Tätä tiedostoa kutsutaan aina .project-tiedostoksi, ja se on projektin sisältöalueen suora jäsen.  Tiedoston nimi esitetään staattisessa kentässä DESCRIPTION_FILE_NAME rajapinnassa org.eclipse.core.resources.IProjectDescription.

Tämän tiedoston nimi, sijainti ja sisältö ovat osa työtilan sovellusohjelmaliittymää.  Tämä tarkoittaa, ettei niitä muuteta siten, etteivät tiedoston entiset käyttäjät voisi enää käyttää tiedostoa.  Oikeus lisätä merkintöihin muita elementtejä ja määritteitä kuitenkin pidätetään tiedostoon tehtäviä mahdollisia tulevia lisäyksiä varten.  Sen vuoksi kuvaustiedoston sisältöä lukevien asiakkaiden olisi sallittava tuntemattomat elementit ja määritteet.

Asiakkaat, jotka muuttavat projektin kuvaustiedostoa tai poistavat tai korvaavat sen, tekevät niin omalla vastuullaan.  Projekteja, joiden kuvaustiedosto on kelvoton tai puuttuu kokonaan, ei yleensä voi käyttää.  Jos työtilan aloituksen yhteydessä löydetään projekti, jonka kuvaustiedosto on kelvoton, projekti suljetaan, eikä sitä voida avata, ennen kuin projektin kuvaustiedosto on korjattu.  Työtila ei yleensä yritä automaattisesti korjata puuttuvaa tai kelvotonta kuvaustiedostoa.  Poikkeuksena on, että puuttuvat projektin kuvaustiedostot luodaan uudelleen työtilan tallennuksen aikana sekä kutsumalla metodia IProject.setDescription.

Projektin kuvaustiedostoon tehtävillä muutoksilla on yleensä sama vaikutus kuin projektin kuvaukseen IProject.setDescription-metodilla tehtävillä muutoksilla.  Poikkeuksena on, että projektin luonteiden lisäys tai poisto ei liipaise vastaavan luonteen määritysmetodia tai määrityksen poistometodia.  Toisena poikkeuksena on, että projektin nimeen tehtävät muutokset ohitetaan.

Jos uusi projekti luodaan sijaintiin, joka sisältää aiemman projektin kuvaustiedoston, tuon kuvaustiedoston sisältö jätetään projektin kuvaukseksi.  Poikkeuksena on, että tiedostossa oleva projektin nimi ohitetaan, jos se ei vastaa luotavan projektin nimeä.  Jos levyllä oleva kuvaustiedosto on kelvoton, projektin luonti ei onnistu.


 

Merkintärakenne:

   <!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>

   <!ELEMENT name EMPTY>

   <!ELEMENT comment EMPTY>

   <!ELEMENT projects (project)*>
   <!ELEMENT project EMPTY>

   <!ELEMENT buildSpec (buildCommand)*>

   <!ELEMENT buildCommand (name, arguments)>

   <!ELEMENT name EMPTY>

   <!ELEMENT arguments (dictionary?)>

   <!ELEMENT dictionary (key, value)*>

   <!ELEMENT key EMPTY>

   <!ELEMENT value EMPTY>

   <!ELEMENT natures (nature)*>

   <!ELEMENT nature EMPTY>

   <!ELEMENT linkedResources (link)*>

   <!ELEMENT link (name, type, location)>

   <!ELEMENT name EMPTY>

   <!ELEMENT type EMPTY>

   <!ELEMENT location EMPTY>

Esimerkkejä: Seuraavassa on projektin kuvaustiedoston malli.  Projektissa on määritetty yksi luonne ja koontitoiminto sekä joitakin projektiviitteitä.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>This is a cool project.</comment>
    <projects>
        <project>org.seasons.sdt</project>
        <project>CoolStuff</project>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.seasons.sdt.seasonBuilder</name>
            <arguments>
                <dictionary>
                    <key>climate</key>
                    <value>cold</value>
                </dictionary>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.seasons.sdt.seasonNature</nature>
    </natures>
</projectDescription>

API-tiedot: Projektin kuvaustiedoston sisältö määritetään vastaamaan rajapintaa org.eclipse.core.resources.IProjectDescription. Projektin kuvaustiedosto voidaan korvata metodilla IProject.setDescription().