# Scripting API for every Data Structure

## Abstract Data Structure Object

The abstract data structure defines a set of data elements and possible connections between them, this is the prototype for every other data structure. Data structures are identified by their names. Assuming you created a data structure with name `testgraph`, then you can access the data structure simply by writing this identifier. For example, to get an array with all data elements in the given data structure, you can write `testgraph.list_nodes();` in the script.

### Properties

- name :

  The unique name of this data structure.

## Abstract Data

An abstract data element is a unit of information that belongs to an abstract data structure and possibly is connected to other data elements by pointers.

### Properties

- width :

  The size of this data element.

- x :

  The x-coordinate of this data element.

- y :

  The y-coordinate of this data element.

- id :

  The unique identifier of this data element.

- color :

  The color of this data element stated as hexadecimal value.

## Abstract Pointer

A pointer connects two data elements and can itself hold information by its properties.

### Properties

- width :

  The width of the connection.

- directed :

  If true, the connection is directed. Otherwise is connection is undirected.

- from :

  Start of the connection.

- to :

  End of the connection

- color :

  ID of the connection type.

### Methods

remove()

- Remove this connection.

          void remove

add_property(name, value)

- Add a new property to the connection.

          void add_property
              string name
              string value

remove_property(name)

- Remove an existing property from the connection.

          void remove_property
              string name