2.7 Methoden für Arrays benutzerdefinierter Attribute
Die Methoden :clear(), :delete(), :exchange(), :insert() und :move() werden für normale, also nicht assoziativer Felder benutzerdefinierter Attribute unterstützt. Die dabei zulässigen Methoden werden im folgenden aufgeführt.
2.7.1 :clear()
Mit Hilfe dieser Methode können die Inhalte von Elementen in Feldern (indizierte, nicht assoziative, benutzerdefinierte Attribute) gelöscht werden.
Im Unterschied zur :delete()-Methode werden mit :clear() nur die Inhalte der Elemente gelöscht. Die Elemente selbst bleiben als leere
Elemente erhalten, die – sofern vorhanden – den Standardwert aufweisen. :clear() verringert also die Anzahl der Elemente nicht.
Besonderheit
Die :clear()-Methode kann auch dafür benutzt werden, alle Elemente eines assoziativen Felds zu löschen. In diesem Fall dürfen weder der Start- noch der Count-Parameter angegeben werden. Es ist also nicht möglich, mit :clear() einzelne Elemente aus einem assoziativen Feld zu löschen. Außerdem werden in diesem Fall nicht nur die Inhalte sondern die Elemente selbst gelöscht. Die Anzahl der Elemente ist danach also 0.
Definition
boolean :clear
(
attribute Attr input
{ , integer Start input }
{ , integer Count input }
)
Parameter
- attribute Attr input
- Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
- integer Start input
-
Dieser Parameter definiert die Position, ab der die Inhalte der Elemente gelöscht werden sollen.
Der Wertebereich für Start ist 0 … .count[Attr], d.h. es kann auch der Standardwert gelöscht werden.
Wenn weder Start noch Count angegeben sind, werden die Inhalte aller Elemente gelöscht.
- integer Count input
-
Dieser optionale Parameter definiert die Anzahl der Elemente, deren Inhalte gelöscht werden sollen.
Wenn weder Start noch Count angegeben sind, werden die Inhalte aller Elemente gelöscht.
Wenn Start angegeben wird, ist der Standardwert von Count 1.
Rückgabewert
Die Methode gibt true zurück, wenn die Inhalte der Elemente gelöscht werden konnten.
Wenn beim Löschen der Inhalte ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.
2.7.2 :delete()
Mit Hilfe dieser Methode können Elemente aus Feldern (indizierten benutzerdefinierten Attributen) gelöscht werden.
Im Unterschied zur :clear()-Methode werden die Elemente mit :delete() vollständig gelöscht, d.h. die Anzahl der Elemente verringert sich.
Definition
boolean :delete ( attribute Attr input, anyvalue Position input { , integer Count := 1 input } )
Parameter
- attribute Attr input
- Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
- anyvalue Position input
-
In diesem Parameter wird der Index übergeben, ab dem die Elemente gelöscht werden sollen. Bei nicht-assoziativen Feldern hat Position den Datentyp integer, bei assoziativen Feldern den Datentyp, mit dem das assoziative Feld indiziert ist.
Der Wertebereich für Position bei nicht-assoziatven Feldern ist 0 … .count[Attr], d.h. es kann auch der Standardwert gelöscht werden. Wird der Standardwert gelöscht, dann wird der Wert des ersten Elements nach den gelöschten Elementen zum Standardwert.
- integer Count := 1 input
-
Dieser optionale Parameter definiert die Anzahl der zu löschenden Elemente. Wird der Parameter nicht angegeben, so wird 1 angenommen.
Count kann bei assoziativen Feldern nicht verwendet werden, es kann immer nur 1 Element gelöscht werden.
Rückgabewert
Die Methode gibt true zurück, wenn die Elemente gelöscht werden konnten.
Wenn beim Löschen ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.
2.7.3 :exchange()
Mit Hilfe dieser Methode können zwei Elemente eines Feldes (indizierten, nicht-assoziativen, benutzerdefinierten Attributs) miteinander vertauscht werden.
Definition
boolean :exchange
(
attribute Attr input,
integer Position1 input,
integer Position2 input
)
Parameter
- attribute Attr input
- Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
- integer Position1 input
integer Position2 input -
In diesen Parametern werden die Indizes der beiden Elemente übergeben, die miteinander vertauscht werden sollen.
Der Wertebereich für beide Parameter ist 0 … .count[Attr], d.h. es kann auch der Standardwert mit dem Wert eines anderen Elements vertauscht werden.
Rückgabewert
Die Methode gibt true zurück, wenn die Elemente vertauscht werden konnten.
Wenn beim Vertauschen ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.
2.7.4 :insert()
Mit Hilfe dieser Methode können neue Elemente in Felder (indizierte, nicht-assoziative, benutzerdefinierte Attribute) eingefügt werden. Die neu eingefügten Elemente sind leer
bzw. weisen – sofern vorhanden – den Standardwert auf.
Definition
boolean :insert ( attribute Attr input, integer Position input { , integer Count := 1 input } )
Parameter
- attribute Attr input
- Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
- integer Position input
- In diesem Parameter wird der Index übergeben, an dem die neuen Elemente eingefügt werden sollen. Wenn sein Wert 0 ist, werden die Elemente am Ende angehängt.
- integer Count := 1 input
- Dieser optionale Parameter definiert die Anzahl der einzufügenden Elemente. Wird der Parameter nicht angegeben, so wird 1 angenommen.
Rückgabewert
Die Methode gibt true zurück, wenn die Elemente eingefügt werden konnten.
Wenn beim Einfügen ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.
2.7.5 :move()
Mit Hilfe dieser Methode können Elemente eines Feldes (indizierten, nicht-assoziativen, benutzerdefinierten Attributs) an eine andere Stelle im Feld verschoben werden.
Definition
void :move
(
attribute Attr input,
integer Position input,
integer Target input,
integer Count input
)
Parameter
- attribute Attr input
- Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
- integer Position input
- In diesem Parameter wird der Index des ersten Elements angegeben, das verschoben werden soll.
- integer Target input
- Dieser Parameter legt fest, wohin die Elemente verschoben werden sollen.
- integer Count input
- Dieser Parameter definiert, wie viele Elemente verschoben werden.
Rückgabewert
Keiner.