Die generische Klasse List<ContentType>
Objekte der generischen
Klasse List verwalten beliebig viele, linear angeordnete Objekte vom Typ ContentType. Auf höchstens ein
Listenobjekt, aktuelles Objekt genannt, kann jeweils zugegriffen werden. Wenn
eine Liste leer ist, vollständig durchlaufen wurde oder das aktuelle Objekt am
Ende der Liste gelöscht wurde, gibt es kein aktuelles Objekt. Das erste oder
das letzte Objekt einer Liste können durch einen Auftrag zum aktuellen Objekt
gemacht werden. Außerdem kann das dem aktuellen Objekt folgende Listenobjekt
zum neuen aktuellen Objekt werden.
Das aktuelle Objekt kann
gelesen, verändert oder gelöscht werden. Außerdem kann vor dem aktuellen Objekt
ein Listenobjekt eingefügt werden.
Dokumentation der Klasse List<ContentType>
Eine leere Liste wird
erzeugt.
Anfrage boolean isEmpty()
Die Anfrage liefert den Wert true, wenn die Liste
keine Objekte enthält, sonst liefert sie den Wert false.
Anfrage boolean hasAccess()
Die Anfrage liefert den Wert true, wenn es ein
aktuelles Objekt gibt, sonst liefert sie den Wert false.
Auftrag void next()
Falls die Liste nicht leer ist, es ein aktuelles Objekt gibt und
dieses nicht das letzte Objekt der Liste ist, wird das dem aktuellen Objekt in
der Liste folgende Objekt zum aktuellen Objekt, andernfalls gibt es nach
Ausführung des Auftrags kein aktuelles Objekt, d.h. hasAccess() liefert den Wert false.
Auftrag void toFirst()
Falls die Liste nicht leer ist, wird das erste Objekt der Liste
aktuelles Objekt. Ist die Liste leer, geschieht nichts.
Falls die Liste nicht leer ist, wird das letzte Objekt der Liste
aktuelles Objekt. Ist die Liste leer, geschieht nichts.
Anfrage ContentType getContent()
Falls es ein aktuelles Objekt gibt (hasAccess()==true), wird
das aktuelle Objekt zurückgegeben. Andernfalls (hasAccess()==false) gibt die
Anfrage den Wert null
zurück.
Auftrag void setContent(ContentType pContent)
Falls es ein aktuelles Objekt gibt (hasAccess()==true) und pContent ungleich null ist, wird das aktuelle
Objekt durch pContent ersetzt.
Sonst bleibt die Liste unverändert.
Auftrag void append(ContentType pContent)
Ein neues Objekt pContent wird am Ende der Liste
eingefügt. Das aktuelle Objekt bleibt unverändert. Wenn die Liste leer ist,
wird das Objekt pContent in die Liste eingefügt und es
gibt weiterhin kein aktuelles Objekt (hasAccess()==false). Falls pContent gleich null ist, bleibt die Liste unverändert.
Auftrag void insert(ContentType pContent)
Falls es ein aktuelles Objekt gibt (hasAccess()==true), wird ein neues Objekt pContent vor dem aktuellen Objekt in die
Liste eingefügt. Das aktuelle Objekt bleibt unverändert.
Falls die Liste leer ist und es somit kein aktuelles Objekt gibt
(hasAccess()==false), wird pContent in die Liste eingefügt und es
gibt weiterhin kein aktuelles Objekt.
Falls es kein aktuelles Objekt gibt (hasAccess()==false) und die Liste nicht leer ist
oder pContent==null ist, bleibt die Liste
unverändert.
Auftrag void concat(List<ContentType> pList)
Die Liste pList wird an die Liste angehängt.
Anschließend wird pList eine leere Liste. Das aktuelle
Objekt bleibt unverändert. Falls es sich bei der Liste und pList um dasselbe Objekt handelt, pList==null oder eine leere Liste ist,
bleibt die Liste unverändert.
Auftrag void remove()
Falls es ein aktuelles Objekt gibt (hasAccess()==true), wird das aktuelle Objekt
gelöscht und das Objekt hinter dem gelöschten Objekt wird zum aktuellen Objekt.
Wird das Objekt, das am Ende der Liste steht, gelöscht, gibt es kein aktuelles
Objekt mehr (hasAccess()==false). Wenn
die Liste leer ist oder es kein aktuelles Objekt gibt (hasAccess()==false),
bleibt die Liste unverändert.