<chapter id="code-import-generation">
<title>Koodi importimine ja genereerimine</title>
<para>Umbrello on &UML;i modelleerimisvahend ja seepärast on selle põhiülesandeks abistada süsteemi <emphasis>analüüsi ja disaini</emphasis> loomisel. Disainist <emphasis>teostusse</emphasis> 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. </para>
<sect1 id="code-generation">
<title>Koodi genereerimine</title>
<para>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 <quote>täita lüngad</quote>, kirjutades juurde klasside operatsioonide funktsionaalsuse. </para>
<para>Umbrello 1.2 toetab lähtekoodi genereerimist järgmistesse keeltesse: ActionScript, Ada, C++, CORBA IDL, &Java;, JavaScript, <acronym>PHP</acronym>, Perl, Python, SQL ja XMLSchema. </para>
<sect2 id="generate-code">
<title>Koodi genereerimine</title>
<para>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 <guimenuitem>Kood</guimenuitem> käsk <guimenuitem>Koodi genereerimise abimees...</guimenuitem> , mis juhatab sind läbi koodigenereerimise protsessi. </para>
<para>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. </para>
<para>Järgmisel sammul võimaldab abimees muuta koodi genereerimiseks kasutatavaid parameetreid. Saadaval on järgmised parameetrid: </para>
<para>
<screenshot>
<screeninfo>Koodi genereerimise seadistused</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="generation-options.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase>Koodi genereerimise seadistused Umbrellos</phrase>
	  </textobject>
	  <caption>
	    <para>Koodi genereerimise seadistused Umbrellos </para>
	  </caption>
	</mediaobject>
</screenshot>
</para>
<sect3 id="generation-options">
<title>Genereerimise seadistused</title>
<!-- LW; to rearrange -->

<sect4>
<title>Kommentaaride ohtrus</title>
<para>Säte <guilabel>Dokumentatsiooni kommentaarid lisatakse isegi siis, kui need on tühjad</guilabel> 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 <application>Doxygen</application> 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. </para>
<para><guilabel>Sektsioonide kommentaarid lisatakse isegi siis, kui need on tühjad</guilabel> käseb Umbrellol lisada lähtekoodi kommentaarid, mis eraldavad erinevaid klassi sektsioone, näiteks <quote>public methods</quote> või <quote>Attributes</quote> 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 <quote>protected methods</quote> isegi siis, kui klassis pole ühtegi kaitstud meetodit. </para>
</sect4>
<sect4>
<title>Kataloogid</title>
<para><guilabel>Kõik genereeritud failid kirjutatakse kataloogi:</guilabel> siin pead valima kataloogi, millesse Umbrello paneks genereeritud lähtekoodi failid. </para>
<para>Säte <guilabel>Kaasatakse päisefailid kataloogist</guilabel> 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. </para>
</sect4>
<sect4>
<title>Ülekirjutamise poliitika</title>
<!-- FIXME update for Umbrello 1.2's new C++ and Java code generators -->
<para>See säte ütleb Umbrellole, mida teha siis, kui loodav fail on sihtkataloogis juba olemas. Umbrello <emphasis>ei oska muuta olemasolevaid koodifaile</emphasis>, 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. </para>
</sect4>
<sect4>
<title>Keel</title>
<para>Vaikimisi genereerib Umbrello koodi selles programmeerimiskeeles, mille oled valinud aktiivseks keeleks, kuid selle sätte abil saad keelt mõneks teiseks muuta. </para>
</sect4>
</sect3><!--generation-options-->
<sect3 id="generation-wizard-generation">
<title>Koodi genereerimine</title>
<para>Kolmandas ja viimases sammus näitab abimees koodi genereerimise protsessi olekut. Klasside failide genereerimiseks pead klõpsama vaid nuppu "Genereeri". </para>
<para>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üü <menuchoice><guimenu>Seadistused</guimenu></menuchoice> käsu <guimenuitem>Umbrello seadistamine...</guimenuitem> valimise järel avaneva seadistustedialoogi kaardil <guilabel>Koodi genereerimine</guilabel>. </para>
<para>Kui oled seadistustest kõik parameetrid paika pannud ja soovid genereerida koodi ilma abimeest kasutamata, siis vali menüüst <menuchoice><guimenu>Kood</guimenu></menuchoice> käsk <guimenuitem>Genereeri kogu kood</guimenuitem>. See käsk genereerib koodi kõigile mudelis olevatele klassidele. </para>
</sect3>
</sect2><!--generate-code-->
</sect1> <!--code-generation-->
<sect1 id="code-import">
<title>Koodi importimine</title>
<para>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. </para>
<para>Klasside mudelisse importimiseks vali menüüst <guimenu>Kood</guimenu> käsk <guimenuitem>Impordi klasse...</guimenuitem>. 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. </para>
<para>
<screenshot>
<screeninfo>Koodi importimine</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="code-import.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase>Lähtekoodi importimise menüükäsk Umbrellos</phrase>
	  </textobject>
	  <caption>
	    <para>Lähtekoodi importimise menüükäsk Umbrellos </para>
	  </caption>
	</mediaobject>
</screenshot>
</para>
</sect1>
</chapter> <!--code-import-generation-->
