Domain
Keywords: yacs.domain.Domain class

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## yacs.domain
Class Domain

    java.lang.Object
      yacs.domain.Domain

All Implemented Interfaces:
  java.lang.Cloneable, java.io.Serializable

Direct Known Subclasses:
  IntervalDomain, NumericFDDomain, SymbolicFDDomain

public class Domain
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

Klasse zur Repräsentation der Domäne einer Constraint-Variablen.

Copyright (C) 2005 Wolfgang Runte
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Version:
  YACS 0.1.1
Author:
  Wolfgang Runte (woru@tzi.org)
See Also:
  Serialized Form

Constructor Summary
`Domain()` Konstruktor -- Instantiiert die Domäne.
`Domain(DomainElement element)` Konstruktor -- Die Domäne wird mit einem Element instantiiert.
`Domain(java.util.List domain)` Konstruktor -- Die Domäne wird mit einer Liste mit Elementen instantiiert (Instanzen des Interface `yacs.domain.DomainElement`).

Method Summary
`boolean` | `add(DomainElement element)` Der Domäne wird ein Element hinzugefügt, wenn sein Wert noch nicht vorhanden ist.
`java.lang.Object` | `clone()` Liefert eine Kopie dieses Objekts.
`Domain` | `cloneDeep()` Klont `this` und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).
`boolean` | `containsElement(DomainElement element)` Abfragemöglichkeit, ob ein bestimmtes Element in der Domäne enthalten ist.
`boolean` | `deleteElement(DomainElement element)` Löscht eine Element aus der Domäne.
`DomainElement` | `getElement(DomainElement element)` Liefert eine Referenz auf das in dieser Domäne vorhandene Element, welches der Belegung des übergebenen Elements entspricht.
`java.util.List` | `getElements()` Liefert eine "unmodifizierbare" Liste mit den Elementen der Domäne (Instanzen des Interface `yacs.domain.DomainElement`).
`boolean` | `isEmpty()` Liefert `true` wenn die Domäne leer ist, `false` wenn nicht.
`boolean` | `narrow(int operatorType, DomainElement element)` Führt eine Beschränkung der Domäne durch, so dass sie nur noch das übergebene Element enthält.
`int` | `size()` Liefert die Anzahl der Elemente in der Domäne.
`java.lang.String` | `toString()` Liefert die Domäne als String.
`boolean` | `update(DomainElement element)` Aktualisiert den Wert für das übergebene Element in der Domäne.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Domain

    public Domain()

  Konstruktor -- Instantiiert die Domäne.

### Domain

    public Domain(DomainElement element)

  Konstruktor -- Die Domäne wird mit einem Element instantiiert.

Parameters:
  `element` - DomainElement

### Domain

    public Domain(java.util.List domain)

  Konstruktor -- Die Domäne wird mit einer Liste mit Elementen instantiiert (Instanzen des Interface `yacs.domain.DomainElement`).

Parameters:
  `domain` - List

Method Detail

### add

    public boolean add(DomainElement element)

  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).

  Parameters:
    `element` - DomainElement

### update

    public boolean update(DomainElement element)

  Aktualisiert den Wert für das übergebene Element in der Domäne.

  Parameters:
    `element` - DomainElement
  Returns:
    boolean

### getElements

    public java.util.List getElements()

  Liefert eine "unmodifizierbare" Liste mit den Elementen der Domäne (Instanzen des Interface `yacs.domain.DomainElement`).

  Returns:
    List

### getElement

    public DomainElement getElement(DomainElement element)

  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.

  Returns:
    List

### deleteElement

    public boolean deleteElement(DomainElement element)

  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.

  Parameters:
    `element` - DomainElement
  Returns:
    boolean

### containsElement

    public boolean containsElement(DomainElement element)

  Abfragemöglichkeit, ob ein bestimmtes Element in der Domäne enthalten ist.

  Parameters:
    `element` - DomainElement
  Returns:
    boolean

### isEmpty

    public boolean isEmpty()

  Liefert `true` wenn die Domäne leer ist, `false` wenn nicht.

  Returns:
    boolean

### size

    public int size()

  Liefert die Anzahl der Elemente in der Domäne.

  Returns:
    int

### narrow

    public boolean narrow(int operatorType,
                          DomainElement element)

  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.)

  Parameters:
    `operatorType` - int
    `element` - DomainElement
  Returns:
    boolean

### toString

    public java.lang.String toString()

  Liefert die Domäne als String.

  Returns:
    String

### clone

    public java.lang.Object clone()

  Liefert eine Kopie dieses Objekts. Allerdings nur eine "shallow copy", d.h. die Felder des Objektes werden nicht geklont.

  Returns:
    Object

### cloneDeep

    public Domain cloneDeep()

  Klont `this` und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).

  Returns:
    Domain

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD