<sect1 id="scripting-data-structure">
<title
>Kõigi andmestruktuuride skriptimise API</title>
<sect2>
<title
>Abstraktne andmestruktuuri objekt</title>
<para
>Abstraktne andmestruktuur defineerib andmeelementide kogumi ja nendevahelised võimalikud ühendused. See on kõigi andmestruktuuride prototüüp. Andmestruktuure identifitseeritakse nime järgi. Oletame, et lõid andmestruktuuri nimega <literal
>testgraph</literal
>. Sel juhul saad andmestruktuuri kasutada lihtsalt seda identifikaatorit kirjutades. Näiteks antud andmestruktuuri kõigi andmeelementide massiivi saamiseks tuleb skripti kirjutada: <literal
>testgraph.list_nodes();</literal
>. </para>

<sect3>
<title
>Omadused</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>name</emphasis
> : </para>
        <para
>Andmestruktuuri unikaalne nimi.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>

<sect2>
<title
>Abstraktsed andmed</title>
<para
>Abstraktne andmeelement on infoüksus, mis kuulub abstraktsele andmestruktuurile ja võib olla ühendatud teiste andmeelementidega viitade abil. </para>

<sect3>
<title
>Omadused</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>width</emphasis
> : </para>
        <para
>Andmeelemendi suurus.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>x</emphasis
> : </para>
        <para
>Andmeelemendi X-koordinaat.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>y</emphasis
> : </para>
        <para
>Andmeelemendi Y-koordinaat.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>id</emphasis
> : </para>
        <para
>Andmeelemendi unikaalne identifikaator.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>Andmeelemendi värv kuueteistkümnendkoodis väärtusena.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>


<sect2>
<title
>Abstraktne viit</title>
<para
>Viit ühendab kaht andmeelementi ja võib ise enda omaduste kujul sisaldada teavet. </para>
<sect3>
<title
>Omadused</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>width</emphasis
> : </para>
        <para
>Ühenduse laius.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>directed</emphasis
> : </para>
        <para
>Kui see on tõene, on ühendus orienteeritud, vastasel juhul orienteerimata.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>from</emphasis
> : </para>
        <para
>Ühenduse algus.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>to</emphasis
> : </para>
        <para
>Ühenduse lõpp.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>Ühenduse tüübi ID.</para>
    </listitem>
</itemizedlist>
</sect3>


<sect3>
<title
>Meetodid</title>
<variablelist>

    <varlistentry>
    <term
>remove()</term>
    <listitem>
        <para
>Ühenduse eemaldamine.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>add_property(nimi, väärtus)</term>
    <listitem>
        <para
>Uue omaduse lisamine ühendusele.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>add_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nimi</replaceable
></parameter
></paramdef
> <paramdef
>string <parameter
><replaceable
>väärtus</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>remove_property(nimi)</term>
    <listitem>
        <para
>Olemasoleva omaduse eemaldamine ühenduselt.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nimi</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>
</variablelist>
</sect3>

</sect2>
</sect1>
