Im Folgenden wollen wir auf die Datenstruktur, die in [2] beschrieben ist, genauer eingehen, um sie schliesslich auf GRADESS anwenden zu können.
3.1 Realisierung der RelationenDie Information über das Band zweier Glieder steht in einem Objekt vom Typ Band. Es ist eine Unterklasse der Klasse Array, denn es muss zwei Informations-Teile speichern: die Hin- und die Rück-Verknüpfung.
Zwei Objekte, wie gesagt, setzen ein Objekt der Klasse Band zusammen, beide sind vom Typ BandHaelfte (Abbildung 1 stellt ein solches Band dar). Jedes dieser Objekte verfügt über vier lokale Variable bzw. Objekte:
next verhängt das Band mit seinem Nachfolger,
zeig weist auf das verknüpfte Glied (welches durch das Band gezeigt werden soll),
imBauplan vermerkt, ob das Band im Bauplan des eigenen Gliedes bei der Erzeugung vorhanden war (denn dieses Wissen ist wichtig für den Abbau des Bandes: ob es aus der Kette der Bande gelöscht werden soll oder nur auf einen undefinierten Wert gesetzt, da es ein Standard-Band ist),
verbindung, welche die Rules (Lösch- und Änder-Regeln) enthält. Sie werden in einem Objekt der Klasse BandMethoden abgespeichert.
Die Methoden werden in einem Objekt der Klasse BandMethoden abgespeichert. Dieses ist eine Unterklasse der Klasse BandHowToDelete und setzt sich somit aus den folgenden lokalen Variablen zusammen:
onDelete, was die Regeln beim Löschen des Elementes beinhaltet,
array, in welchem ein Objekt des Typs BandMethode zu finden ist.
Die Variable array, vom Typ BandMethode, hat wiederum eine lokale Variable, sie nennt sich methods und ist ein Array von der Länge der Anzahl miteinander verknüpfter Felder; meist ist die Länge gleich 1. An jeder Position des Arrays steht ein Objekt vom Typ BandHowToChangeOne, welches die Change Rule für jedes einzelne Feld gespeichert hält (in den dort lokalen Variablen onChange und field). Abbildung 1 verknüpft beispielsweise ein Paar von Feldern miteinander.
Die Variablen onDelete und onChange sind Integer, deren Werte den Rules zugeordnet sind.
Die letzte Klasse, die hier erwähnt werden muss, ist die Klasse BandHowToAdd, welche die Add-Rule eines Gliedes speichern kann. Sie kommt jedoch nie in einem bestehenden Band vor, sondern immer nur im Bauplan eines Bandes (d.h. in einer Routine, welche ein neues Band erzeugt).
Bevor wir aber näher auf die Bande eingehen, wollen wir einen genaueren Blick auf die Glieder werden.

Abbildung 1: Aufbau eines Bandes