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.