de.bsvrz.vew.sim.sim.simulation
Class EndlicherAutomat

java.lang.Object
  extended by de.bsvrz.vew.sim.sim.simulation.EndlicherAutomat

public class EndlicherAutomat
extends java.lang.Object

Implementierung eines endlichen Automaten

Version:
$Revision: 1.3 $ / $Date: 2008/10/31 13:30:30 $ / ($Author: Sans $)
Author:
Dambach-Werke GmbH, Stefan Sans

Field Summary
protected  int _anzahlZustaende
          Anzahl der Zustände dieses endlichen Automaten
protected  Zustand _momentZustand
          Momentaner Zustand dieses endlichen Automaten
protected  Zustand[] _zustaende
          In diesem Feld werden alle mögliche Zustände dieses endlichen Automaten gespeichert
 
Constructor Summary
EndlicherAutomat()
          Erzeugt einen neuen endlichen Auotmaten
EndlicherAutomat(int maxZustaende)
          Erzeugt einen neuen endlichen Auotmaten mit einer maximalen Anzahl von Zuständen
EndlicherAutomat(int maxZustaende, Zustand initialZustand)
          Erzeugt einen neuen endlichen Auotmaten mit einer maximalen Anzahl von Zuständen und einem initialen Zustand
EndlicherAutomat(Zustand initialZustand)
          Erzeugt einen neuen endlichen Auotmaten mit einem initialen Zustand
 
Method Summary
 int berechneUebergang(Zustand start, Zustand ende)
          Berechnet für gegebenen Anfang-und Endzustand die Id des Übergangs.
 int getAnzahlZustaende()
          Bestimme die Anzahl der Zustände dieses endlichen Automaten
 Zustand getMomentZustand()
          Bestimmt den momentanen Zustand dieses endlichen Automaten
 Zustand getZustand(int i)
          Bestimme den gegebenen Zustand dieses endlichen Automaten
 void hinzufuegenUebergang(Zustand start, int uebergang, Zustand end)
          Fügt diesem endlichen Automaten einen neuen Zustands-Übergang hinzu.
 int hinzufuegenZustaende(Zustand[] zustaende)
          Fügt diesem endlichen Automaten ein Feld von Zuständen hinzu
 int hinzufuegenZustand(Zustand zustand)
          Fügt diesem endlichen Automaten einen neuen Zustand hinzu.
 void loescheAlleZustaende()
          Lösche alle Zustände dieses endlichen Automaten
 Zustand realisiereUebergang(int uebergang)
          Realisiert den gegebenen Übergang für diesen endlichen Automaten.
 void setZustand(Zustand zustand)
          Setze den momentanen Zustand dieses endlichen Automaten
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_anzahlZustaende

protected int _anzahlZustaende
Anzahl der Zustände dieses endlichen Automaten


_momentZustand

protected Zustand _momentZustand
Momentaner Zustand dieses endlichen Automaten


_zustaende

protected Zustand[] _zustaende
In diesem Feld werden alle mögliche Zustände dieses endlichen Automaten gespeichert

Constructor Detail

EndlicherAutomat

public EndlicherAutomat()
Erzeugt einen neuen endlichen Auotmaten


EndlicherAutomat

public EndlicherAutomat(int maxZustaende)
Erzeugt einen neuen endlichen Auotmaten mit einer maximalen Anzahl von Zuständen

Parameters:
maxZustaende - maximale Anzahl Zustände

EndlicherAutomat

public EndlicherAutomat(Zustand initialZustand)
Erzeugt einen neuen endlichen Auotmaten mit einem initialen Zustand

Parameters:
initialZustand - der initiale Zustand

EndlicherAutomat

public EndlicherAutomat(int maxZustaende,
                        Zustand initialZustand)
Erzeugt einen neuen endlichen Auotmaten mit einer maximalen Anzahl von Zuständen und einem initialen Zustand

Parameters:
maxZustaende - maximale Anzahl Zustände
initialZustand - der initiale Zustand
Method Detail

getMomentZustand

public Zustand getMomentZustand()
Bestimmt den momentanen Zustand dieses endlichen Automaten

Returns:
den momentanen Zustand

hinzufuegenZustand

public int hinzufuegenZustand(Zustand zustand)
Fügt diesem endlichen Automaten einen neuen Zustand hinzu.

Parameters:
zustand - der neue Zustand
Returns:
die resultierende ANzahl von Zuständen

setZustand

public void setZustand(Zustand zustand)
Setze den momentanen Zustand dieses endlichen Automaten

Parameters:
zustand - der zu setzende momentane Zustand

hinzufuegenZustaende

public int hinzufuegenZustaende(Zustand[] zustaende)
Fügt diesem endlichen Automaten ein Feld von Zuständen hinzu

Parameters:
zustaende - das hinzuzufügende Feld von Zuständen
Returns:
die resultierende Anzahl Zustände

loescheAlleZustaende

public void loescheAlleZustaende()
Lösche alle Zustände dieses endlichen Automaten


hinzufuegenUebergang

public void hinzufuegenUebergang(Zustand start,
                                 int uebergang,
                                 Zustand end)
Fügt diesem endlichen Automaten einen neuen Zustands-Übergang hinzu. Das Aufrufen dieser Methode ist aquivalent zum hinzufügen eines neuen Übergangs direkt zum Anfangszustand

Parameters:
start - der Anfangszustand des neuen Übergangs
uebergang - die Id des neuen Übergangs
end - der Endzustand des neuen Übergangs

realisiereUebergang

public Zustand realisiereUebergang(int uebergang)
                            throws java.lang.IllegalStateException
Realisiert den gegebenen Übergang für diesen endlichen Automaten.

Parameters:
uebergang - Id des Übergangs, der realisiert werden soll
Returns:
den neuen Zustand ded endlcine Automaten
Throws:
java.lang.IllegalStateException - falls der gegebene Übergang für diesen endlchen Automaten nicht definiert ist

berechneUebergang

public int berechneUebergang(Zustand start,
                             Zustand ende)
                      throws java.lang.UnsupportedOperationException
Berechnet für gegebenen Anfang-und Endzustand die Id des Übergangs.

Parameters:
start - der Anfangs-Zustand des zu berechnenden Übergangs
ende - der End-Zustand des zu berechnenden Übergangs
Returns:
die Id des Übergangs Id des Übergangs von start zu ende
Throws:
java.lang.UnsupportedOperationException - falls ein Übergang von start zu ende für diese Instanz nicht definiert ist

getZustand

public Zustand getZustand(int i)
Bestimme den gegebenen Zustand dieses endlichen Automaten

Parameters:
i - Index des zurückzugebenden Zustands
Returns:
gegebener Zustand

getAnzahlZustaende

public int getAnzahlZustaende()
Bestimme die Anzahl der Zustände dieses endlichen Automaten

Returns:
die Anzahl Zustände