<sect1 id="scripting-data-structure">
<title
>Програмний інтерфейс (API) скриптів для всіх структур даних</title>
<sect2>
<title
>Абстрактний об’єкт структури даних</title>
<para
>Абстрактна структура даних визначає набір елементів даних та можливі зв’язки між ними, це прототип для всіх інших структур даних. Структури даних ідентифікуються за назвами. Якщо вами, наприклад, створено структуру даних з назвою <literal
>testgraph</literal
>, доступ до цієї структури даних можна здійснювати простим вписуванням її ідентифікатора. Наприклад, щоб отримати масив усіх елементів даних у вказаній структурі даних, вам достатньо додати до скрипту інструкцію <literal
>testgraph.list_nodes();</literal
>. </para>

<sect3>
<title
>Властивості</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>name</emphasis
>: </para>
        <para
>Унікальна назва цієї структури даних.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>

<sect2>
<title
>Абстрактні дані</title>
<para
>Абстрактний елемент даних є одиницею інформації, яка належить абстрактній структурі даних і, можливо, з’єднаний з іншими елементами даних за допомогою вказівників. </para>

<sect3>
<title
>Властивості</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>width</emphasis
>: </para>
        <para
>Розмір цього елемента даних.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>x</emphasis
>: </para>
        <para
>Координата за X цього елемента даних.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>y</emphasis
>: </para>
        <para
>Координата за Y цього елемента даних.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>id</emphasis
>: </para>
        <para
>Унікальний ідентифікатор цього елемента даних.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
>: </para>
        <para
>Колір цього елемента даних у форматі шістнадцяткового числа.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>


<sect2>
<title
>Абстрактний вказівник</title>
<para
>Вказівник з’єднує два елементи даних і сам може містити дані щодо своїх властивостей. </para>
<sect3>
<title
>Властивості</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>width</emphasis
>: </para>
        <para
>Товщина з’єднання.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>directed</emphasis
>: </para>
        <para
>Якщо має значення true, з’єднання є спрямованим. Якщо має значення false — не спрямованим.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>from</emphasis
>: </para>
        <para
>Початок з’єднання.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>to</emphasis
>: </para>
        <para
>Кінець з’єднання.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
>: </para>
        <para
>Ідентифікатор типу з’єднання.</para>
    </listitem>
</itemizedlist>
</sect3>


<sect3>
<title
>Методи</title>
<variablelist>

    <varlistentry>
    <term
>remove()</term>
    <listitem>
        <para
>Вилучити це з’єднання.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>add_property(назва, значення)</term>
    <listitem>
        <para
>Додати до з’єднання нову властивість.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>add_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>назва</replaceable
></parameter
></paramdef
> <paramdef
>string <parameter
><replaceable
>значення</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>remove_property(назва)</term>
    <listitem>
        <para
>Вилучити зі з’єднання наявну властивість.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>назва</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>
</variablelist>
</sect3>

</sect2>
</sect1>
