Klasse zur Repräsentation der Domäne einer Constraint-Variablen.
Deklaration:
Konstruktoren:
Instantiiert die Domäne.
Die Domäne wird mit einem Element instantiiert.
Die Domäne wird mit einer Liste mit Elementen instantiiert (Instanzen des Interface yacs.domain.DomainElement).
Methoden:
Der Domäne wird ein Element hinzugefügt, wenn sein Wert noch nicht vorhanden ist. Liefert true zurück, wenn dies erfolgreich war, false wenn nicht (Wert bereits vorhanden).
Aktualisiert den Wert für das übergebene Element in der Domäne.
Liefert eine ,,unmodifizierbare`` Liste mit den Elementen der Domäne (Instanzen des Interface yacs.domain.DomainElement).
Liefert eine Referenz auf das in dieser Domäne vorhandene Element, welches der Belegung des übergebenen Elements entspricht. Liefert null, wenn kein Element mit der entsprechenden Belegung existiert.
Löscht eine Element aus der Domäne. Sollte nur aus der Klasse Variable aufgerufen werden, denn u.U. ist der zu löschende Wert die aktuelle Belegung der Variable. Dies wird in Variable abgefangen. Liefert true, wenn das Entfernen erfolgreich war (Element war in der Domäne enthalten), false wenn nicht.
Abfragemöglichkeit, ob ein bestimmtes Element in der Domäne enthalten ist.
Liefert true wenn die Domäne leer ist, false wenn nicht.
Liefert die Anzahl der Elemente in der Domäne.
Führt eine Beschränkung der Domäne durch, so dass sie nur noch das übergebene Element enthält. Liefert true wenn die Domäne eingeschränkt wurde (Element war enthalten), false wenn nicht. (Anm.: Die Angabe operatorType (bezogen auf den Operator: =, !=, <, >, <=, >=) wird derzeit an dieser Stelle ignoriert.)
Liefert die Domäne als String.
Liefert eine Kopie dieses Objekts. Allerdings nur eine shallow copy, d.h. die Felder des Objektes werden nicht geklont.
Klont this und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).