Expression
Keywords: yacs.parser.Expression 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.parser
Class Expression

    java.lang.Object
      yacs.parser.Expression

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

Direct Known Subclasses:
  BinaryOperator, Constant, UnaryOperator, Variable

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

Abstrakte Klasse für eine rekursive Struktur zur Repräsentation eines algebraischen Constraint-Problems. Anm.: Diese Klasse bzw. die erbenden Klassen arbeiten in Bezug auf die Variablen "stringbasiert" noch (anhand der Variablennamen). Dies sollte dahingehend geändert werden, dass die entsprechenden Objekte der Klasse `Variable` direkt verwendet werden.

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
`Expression()`

Method Summary
`java.lang.Object` | `clone()` Liefert eine Kopie dieses Objekts.
`Expression` | `cloneDeep()` Klont `this` und rekursiv alle darin referenzierten Objekte mit (die Selbheit indirekt mehrfach referenzierter Objekte bleibt erhalten).
`abstract boolean` | `containsVariable(java.lang.String variableName)` Liefert `true`, wenn der Expression die Variable mit dem übergebenen Namen enthält.
`abstract int` | `count(java.lang.String variableName)` Liefert den "Vernetzungsgrad" einer Variablen innerhalb des Constraint-Problems, d.h. dem Grad ihres Vorkommens in den Constraints.
`abstract DomainElement` | `evaluate()` Wertet den Constraint-Ausdruck aus.
`abstract DomainElement` | `get(java.lang.String variableName)` Liefert die Wertebelegung der übergebenen Variable.
`abstract Domain` | `getDomain(java.lang.String variableName)` Liefert die Domäne der übergebenen Variable.
`abstract java.util.List` | `getPrimitiveExpressions()` Liefert die einzelnen "Primärausdrücke" des Constraint-Problems innerhalb einer Liste (enthält Instanzen des Interface `Expression`).
`abstract java.util.List` | `getUnsetVariables()` Liefert eine Liste mit den Namen der noch unbelegten Variablen.
`abstract Variable` | `getVariableReference(java.lang.String variableName)` Liefert die Referenz auf die Variable mit dem übergebenen Namen.
`abstract java.util.List` | `getVariables()` Liefert eine Liste der Variablennamen des Constraint-Problems.
`abstract boolean` | `hasFalseDomain()` Liefert `true`, wenn die Domäne einer Variable leer ist.
`abstract boolean` | `hasValuationDomain()` Liefert `true`, wenn eine "valuation domain" vorliegt, d.h. in den Domänen aller Variablen ist jeweils genau ein Wert enthalten.
`abstract void` | `init()` Initialisiert die Constraint-Variablen.
`abstract boolean` | `satisfiable()` Prüft die Erfüllbarkeit des Constraint-Ausdrucks bzgl. der aktuellen Wertebelegung.
`abstract boolean` | `set(java.lang.String variableName, DomainElement element)` Belegt die übergebene Variable mit einem Wert.
`abstract boolean` | `setDomain(java.lang.String variableName, Domain domain)` Belegt den Wertebereich der angegebenen Variable und gibt zurück, ob dies erfolgreich war (`true`) oder nicht (`false`).
`abstract boolean` | `setValuationDomain()` Wenn eine "valuation domain" vorliegt, werden die Variablen mit dem in der jeweiligen Domäne einzig vorhandenen Wert belegt.
`abstract void` | `singletons()` Entfernt bei allen Variablen, die mit einem Wert belegt sind, sämtliche anderen Elemente aus deren Domäne.
`abstract java.lang.String` | `toString()` Konvertiert das Objekt in einen String.
`abstract boolean` | `unsetVariablesLeft()` Gibt zurück ob unbelegte Variablen existieren (`true`) oder nicht (`false`).

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

Constructor Detail

### Expression

    public Expression()

Method Detail

### setDomain

    public abstract boolean setDomain(java.lang.String variableName,
                                      Domain domain)

  Belegt den Wertebereich der angegebenen Variable und gibt zurück, ob dies erfolgreich war (`true`) oder nicht (`false`).

  Parameters:
    `variableName` - String
    `domain` - Domain
  Returns:
    boolean

### getDomain

    public abstract Domain getDomain(java.lang.String variableName)

  Liefert die Domäne der übergebenen Variable.

  Parameters:
    `variableName` - String
  Returns:
    Domain

### getVariables

    public abstract java.util.List getVariables()

  Liefert eine Liste der Variablennamen des Constraint-Problems.

  Returns:
    List

### getUnsetVariables

    public abstract java.util.List getUnsetVariables()

  Liefert eine Liste mit den Namen der noch unbelegten Variablen.

  Returns:
    List

### unsetVariablesLeft

    public abstract boolean unsetVariablesLeft()

  Gibt zurück ob unbelegte Variablen existieren (`true`) oder nicht (`false`).

  Returns:
    boolean

### set

    public abstract boolean set(java.lang.String variableName,
                                DomainElement element)

  Belegt die übergebene Variable mit einem Wert. War die Wertebelegung erfolgreich, wird `true` zurückgegeben, ansonsten `false`.

  Parameters:
    `variableName` - String
    `element` - DomainElement
  Returns:
    boolean

### get

    public abstract DomainElement get(java.lang.String variableName)

  Liefert die Wertebelegung der übergebenen Variable.

  Parameters:
    `variableName` - String
  Returns:
    DomainElement

### satisfiable

    public abstract boolean satisfiable()

  Prüft die Erfüllbarkeit des Constraint-Ausdrucks bzgl. der aktuellen Wertebelegung.

  Returns:
    boolean

### evaluate

    public abstract DomainElement evaluate()

  Wertet den Constraint-Ausdruck aus. Liefert als Ergebnis die Belegung einer Variable, den Wert einer Konstante oder das Ergebnis einer Berechnung.

  Returns:
    DomainElement

### getPrimitiveExpressions

    public abstract java.util.List getPrimitiveExpressions()

  Liefert die einzelnen "Primärausdrücke" des Constraint-Problems innerhalb einer Liste (enthält Instanzen des Interface `Expression`).

  Returns:
    List

### getVariableReference

    public abstract Variable getVariableReference(java.lang.String variableName)

  Liefert die Referenz auf die Variable mit dem übergebenen Namen.

  Parameters:
    `variableName` - String
  Returns:
    Variable

### containsVariable

    public abstract boolean containsVariable(java.lang.String variableName)

  Liefert `true`, wenn der Expression die Variable mit dem übergebenen Namen enthält. Ansonsten wird `false` zurückgegeben.

  Parameters:
    `variableName` - String
  Returns:
    boolean

### hasFalseDomain

    public abstract boolean hasFalseDomain()

  Liefert `true`, wenn die Domäne einer Variable leer ist. In diesem Fall ist keine Konsistenz bzw. Lösung herstellbar. Ansonsten wird `false` zurückgegeben.

  Returns:
    boolean

### hasValuationDomain

    public abstract boolean hasValuationDomain()

  Liefert `true`, wenn eine "valuation domain" vorliegt, d.h. in den Domänen aller Variablen ist jeweils genau ein Wert enthalten. Ansonsten wird `false` zurückgegeben.

  Returns:
    boolean

### setValuationDomain

    public abstract boolean setValuationDomain()

  Wenn eine "valuation domain" vorliegt, werden die Variablen mit dem in der jeweiligen Domäne einzig vorhandenen Wert belegt. Liefert `true`, wenn das Ergebnis positiv ist, d.h. die Werte einer "valuation domain" konnten alle gesetzt werden. Ansonsten wird `false` zurückgegeben.

  Returns:
    boolean

### singletons

    public abstract void singletons()

  Entfernt bei allen Variablen, die mit einem Wert belegt sind, sämtliche anderen Elemente aus deren Domäne. Variablen, die nicht mit einem Wert belegt sind, bleiben unverändert.

### count

    public abstract int count(java.lang.String variableName)

  Liefert den "Vernetzungsgrad" einer Variablen innerhalb des Constraint-Problems, d.h. dem Grad ihres Vorkommens in den Constraints.

  Parameters:
    `variableName` - String
  Returns:
    int

### init

    public abstract void init()

  Initialisiert die Constraint-Variablen. Es werden alle vorhandenen Belegungen entfernt.

### toString

    public abstract java.lang.String toString()

  Konvertiert das Objekt in einen 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 Expression cloneDeep()

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

  Returns:
    Expression

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