# Koodi importimine ja genereerimine

Umbrello on &UML;i modelleerimisvahend ja seepärast on selle põhiülesandeks abistada süsteemi analüüsi ja disaini loomisel. Disainist teostusse liikumise lihtsustamiseks võimaldab Umbrello genereerida lähtekoodi erinevatesse programmeerimiskeeltesse. Kui soovid alustada &UML;i kasutamist olemasoleva C++ projekti juures, siis aitab Umbrello luua süsteemi mudelit olemasolevast lähtetekstist, analüüsides lähteteksti ja importides sellest leitud klassid.

## Koodi genereerimine

Umbrello võimaldab &UML;i mudeli põhjal genereerida lähtekoodi erinevate programmeerimiskeeltes. Genereeritud kood koosneb klasside kirjeldustest koos meetodite ja atribuutidega, nii et saad täita lüngad, kirjutades juurde klasside operatsioonide funktsionaalsuse.

Umbrello 1.2 toetab lähtekoodi genereerimist järgmistesse keeltesse: ActionScript, Ada, C++, CORBA IDL, &Java;, JavaScript, PHP, Perl, Python, SQL ja XMLSchema.

### Koodi genereerimine

Koodi genereerimiseks Umbrello abil pead kõigepealt looma või laadima vähemalt ühte klassi sisaldava mudeli. Kui oled koodikirjutamiseks valmis, siis vali abimehe käivitamiseks menüüst Kood käsk Koodi genereerimise abimees... , mis juhatab sind läbi koodigenereerimise protsessi.

Esimene samm on nende klasside valimine, mille jaoks soovid koodi genereerida. Vaikimisi on kõik mudeli klassid valitud ja sul on võimalik eemaldada mittevajalikud klassid parempoolses nimekirjas olevast valikust vasakpoolsesse nimekirja.

Järgmisel sammul võimaldab abimees muuta koodi genereerimiseks kasutatavaid parameetreid. Saadaval on järgmised parameetrid:

Koodi genereerimise seadistused Koodi genereerimise seadistused Umbrellos

Koodi genereerimise seadistused Umbrellos

#### Genereerimise seadistused

##### Kommentaaride ohtrus

Säte Dokumentatsiooni kommentaarid lisatakse isegi siis, kui need on tühjad käseb koodigeneraatoril lisada /** blah */ stiilis kommentaarid isegi siis, kui kommentaariplokid on tühjad. Kui lisasid mudeli klassidele, meetoditele või atribuutidele dokumentatsiooni, siis kirjutab koodigeneraator need, arvestades rakenduse Doxygen reegleid. Selle sätte märgistamisel lisatakse kõigile klassidele, meetoditele ja atribuutidele kommentaariplokid isegi siis, kui neil puudub mudelis dokumentatsioon. Sellisel juhul pead ise hiljem dokumentatsiooni otse koodi kirjutama.

Sektsioonide kommentaarid lisatakse isegi siis, kui need on tühjad käseb Umbrellol lisada lähtekoodi kommentaarid, mis eraldavad erinevaid klassi sektsioone, näiteks public methods või Attributes enne vastava sektsiooni algust. Selle sätte märgistamisel lisatakse kõik sektsioone märgistavad kommentaarid isegi siis, kui klassi vastavad sektsioonid on tühjad. Näiteks lisatakse kommentaar protected methods isegi siis, kui klassis pole ühtegi kaitstud meetodit.

##### Kataloogid

Kõik genereeritud failid kirjutatakse kataloogi: siin pead valima kataloogi, millesse Umbrello paneks genereeritud lähtekoodi failid.

Säte Kaasatakse päisefailid kataloogist võimaldab lisada iga genereeritud faili algusse päiseid. Päisefailid võivad sisaldada näiteks teavet autoriõiguse ja litsenseerimise kohta ning muutujaid, mis asendatakse genereerimise käigus. Täpsema info saamiseks muutujate kasutamise kohta päisefailides vaata Umbrelloga kaasatulevaid näidismalle.

##### Ülekirjutamise poliitika

See säte ütleb Umbrellole, mida teha siis, kui loodav fail on sihtkataloogis juba olemas. Umbrello ei oska muuta olemasolevaid koodifaile, seega pead valima, kas kirjutada olemasolev fail üle, jätta selle konkreetse faili genereerimine vahele või käskida Umbrellol kasutada uut nime. Kui valid uue nime kasutamise, siis lisab Umbrello failinimele järelliite.

##### Keel

Vaikimisi genereerib Umbrello koodi selles programmeerimiskeeles, mille oled valinud aktiivseks keeleks, kuid selle sätte abil saad keelt mõneks teiseks muuta.

#### Koodi genereerimine

Kolmandas ja viimases sammus näitab abimees koodi genereerimise protsessi olekut. Klasside failide genereerimiseks pead klõpsama vaid nuppu "Genereeri".

Pane tähele, et koodi genereerimise abimehes valitud seadistused kehtivad vaid selle genereerimise ajal. Koodi genereerimise abimeest järgmine kord käivitades pead valima kõik seadistused uuesti (päisefailide kataloog, ülekirjutamise poliitika jne). Koodi genereerimise vaikeväärtusi saab sättida menüü Seadistused käsu Umbrello seadistamine... valimise järel avaneva seadistustedialoogi kaardil Koodi genereerimine.

Kui oled seadistustest kõik parameetrid paika pannud ja soovid genereerida koodi ilma abimeest kasutamata, siis vali menüüst Kood käsk Genereeri kogu kood. See käsk genereerib koodi kõigile mudelis olevatele klassidele.

## Koodi importimine

Umbrello oskab olemasoleva projekti lähtekoodist klasse importida, aidates nii sul süsteemi mudelit luua. Umbrello 1.2 toetab ainult C++ lähtekoodist importimist, kuid uuematesse versioonidesse peaks lisanduma ka teiste keelte toetus.

Klasside mudelisse importimiseks vali menüüst Kood käsk Impordi klasse.... Vali failidialoogist C++ klasside kirjeldusi sisaldavad failid (tavaliselt laiend .h või .hxx) ja klõpsa nuppu OK. Klassid imporditakse mudelisse ja leiad nad mudeli puuvaatest. Pane tähele, et Umbrello ei loo ise ühtegi skeemi klasside näitamiseks, klassid imporditakse vaid skeemi, et saaksid neid hiljem kasutada sobivates skeemides.

Koodi importimine Lähtekoodi importimise menüükäsk Umbrellos

Lähtekoodi importimise menüükäsk Umbrellos