yacs.domain
Class DomainElement

java.lang.Object
  extended byyacs.domain.DomainElement
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable, java.io.Serializable
Direct Known Subclasses:
IntervalDomainElement, NumericFDElement, SymbolicFDElement

public abstract class DomainElement
extends java.lang.Object
implements java.lang.Comparable, java.lang.Cloneable, java.io.Serializable

Abstrakte Klasse zur Repräsentation von einzelnen Werten einer Domäne einer Constraint-Variable. Implementierungen dieser Klasse können z.B. Elemente für numerische finite Domänen, symbolische finite Domänen oder reellwertige Intervall-Domänen sein.

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
DomainElement()
           
 
Method Summary
 java.lang.Object clone()
          Liefert eine Kopie dieses Objekts.
 DomainElement cloneDeep()
          Klont this und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).
 int compareTo(java.lang.Object param)
          Bietet die Möglichkeit Instanzen dieser Klasse innerhalb einer TreeMap sortieren zu lassen.
abstract  DomainElement divide(DomainElement param)
          Methode zur Division zweier Elemente.
abstract  boolean equals(DomainElement param)
          Liefert true, wenn das Element gleich dem übergebenen Element ist, false wenn nicht.
abstract  java.lang.Object getValue()
          Liefert den Wert des Elements.
abstract  boolean greaterAs(DomainElement param)
          Liefert true, wenn das Element größer als das übergebenen Element ist, false wenn nicht.
abstract  boolean greaterEqualAs(DomainElement param)
          Liefert true, wenn das Element größer/gleich dem übergebenen Element ist, false wenn nicht.
abstract  boolean lowerAs(DomainElement param)
          Liefert true, wenn das Element kleiner als das übergebenen Element ist, false wenn nicht.
abstract  boolean lowerEqualAs(DomainElement param)
          Liefert true, wenn das Element kleiner/gleich dem übergebenen Element ist, false wenn nicht.
abstract  DomainElement minus(DomainElement param)
          Methode zur Subtraktion zweier Elemente.
abstract  boolean notEquals(DomainElement param)
          Liefert true, wenn das Element ungleich dem übergebenen Element ist, false wenn nicht.
abstract  DomainElement plus(DomainElement param)
          Methode zur Addition zweier Elemente.
abstract  DomainElement times(DomainElement param)
          Methode zur Multiplikation zweier Elemente.
abstract  java.lang.String toString()
          Liefert die Belegung dieses Elements als String.
abstract  DomainElement uminus()
          Liefert das Element mit negativem Vorzeichen.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DomainElement

public DomainElement()
Method Detail

getValue

public abstract java.lang.Object getValue()
Liefert den Wert des Elements.

Returns:
Object

plus

public abstract DomainElement plus(DomainElement param)
Methode zur Addition zweier Elemente.

Parameters:
param - DomainElement
Returns:
DomainElement

minus

public abstract DomainElement minus(DomainElement param)
Methode zur Subtraktion zweier Elemente.

Parameters:
param - DomainElement
Returns:
DomainElement

times

public abstract DomainElement times(DomainElement param)
Methode zur Multiplikation zweier Elemente.

Parameters:
param - DomainElement
Returns:
DomainElement

divide

public abstract DomainElement divide(DomainElement param)
Methode zur Division zweier Elemente.

Parameters:
param - DomainElement
Returns:
DomainElement

uminus

public abstract DomainElement uminus()
Liefert das Element mit negativem Vorzeichen.

Returns:
DomainElement

equals

public abstract boolean equals(DomainElement param)
Liefert true, wenn das Element gleich dem übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

notEquals

public abstract boolean notEquals(DomainElement param)
Liefert true, wenn das Element ungleich dem übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

greaterAs

public abstract boolean greaterAs(DomainElement param)
Liefert true, wenn das Element größer als das übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

lowerAs

public abstract boolean lowerAs(DomainElement param)
Liefert true, wenn das Element kleiner als das übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

greaterEqualAs

public abstract boolean greaterEqualAs(DomainElement param)
Liefert true, wenn das Element größer/gleich dem übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

lowerEqualAs

public abstract boolean lowerEqualAs(DomainElement param)
Liefert true, wenn das Element kleiner/gleich dem übergebenen Element ist, false wenn nicht.

Parameters:
param - DomainElement
Returns:
boolean

toString

public abstract java.lang.String toString()
Liefert die Belegung dieses Elements als String.

Returns:
String

compareTo

public int compareTo(java.lang.Object param)
Bietet die Möglichkeit Instanzen dieser Klasse innerhalb einer TreeMap sortieren zu lassen. Hierfür ist außerdem erforderlich, dass diese Klasse das Interface Comparable implementiert.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
param - Object
Returns:
int

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 DomainElement cloneDeep()
Klont this und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).

Returns:
DomainElement