schmitzm.test.model
Class DynamicXuluModel

java.lang.Object
  extended by AbstractNamedObject
      extended by schmitzm.test.model.DynamicXuluModel
All Implemented Interfaces:
XuluModel, ModelTunnel
Direct Known Subclasses:
DynamicStepModel

public class DynamicXuluModel
extends AbstractNamedObject
implements ModelTunnel

Diese Klasse implementiert einen ModelTunnel. Saemtliche durch das Interface XuluModel spezifizierten Methoden, werden direkt auf das zu tunnelnde Modell umgeleitet.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Field Summary
protected  XuluModel model
          Speichert das getunnelte Modell.
 
Constructor Summary
DynamicXuluModel()
          Erzeugt ein neues dynamisches Modell.
DynamicXuluModel(XuluModel model)
          Erzeugt ein neues dynamisches Modell.
 
Method Summary
 boolean addModelListener(ModelListener listener)
          Fuegt dem Model einen Listener hinzu.
protected  void checkModel()
          Prueft, ob dem dynamischen Modell bereits ein zu tunnelndes Modell zugeordnet ist.
 void disposeModel()
          Diese Methode loescht alle internen Modell-Ressourcen aus dem Speicher und gibt die externen wieder frei.
 ModelContentManager getContentManager()
          Liefert den ContentManager des Modells.
 Class<ModelEvent>[] getEvents()
          Liefert (optional) eine modellspezifische GUI-Komponente.
 XuluModel getModel()
          Liefert das Modell das durch den Tunnel ausgefuehrt wird.
 Component getModelSpecificGUI()
          Liefert (optional) eine modellspezifische GUI-Komponente.
 ResourceProvider getResourceProvider()
          Liefert den ResourceProvider, der die Uebersetzungen fuer Modell-Ausgaben und modellspezifische GUI verwaltet.
 PrintStream getStatusOut()
          Liefert den Stream fuer die Status-Ausgaben des Modells.
 void initModel()
          Diese Methode setzt alle internen Modell-Ressourcen auf einen Ausgangszustand zurueck, so dass das Modell komplett neu gestartet werden kann.
 boolean isDisposed()
          Prueft, ob das Modell (dessen interen Ressourcen) "zerstoert" sind.
 boolean isInitialised()
          Prueft, ob das Modell initialisiert ist - sich also im Ausgangszustand befindet - und bereit ist gestartet zu werden.
 boolean isRunning()
          Prueft, ob die Modellierung gerade am Laufen ist.
 boolean isStopped()
          Prueft, ob die Modellierung beendet ist.
 void performError()
          Diese Methode wird aufgrufen, wenn ein unerwarteter Fehler bei der Modellierung auftritt, welcher das Beenden der Modellierung zu Folge hat.
 boolean removeModelListener(ModelListener listener)
          Entfernt einen Listener von dem Modell.
 void resetCaptions(Map<String,Object> captionMap)
          Belegt die sprachspezifischen Elemente des Modells (Status-Ausgaben, GUI) neu mit Elementen aus der Map.
 void setModel(XuluModel model)
          Setzt das Modell das durch den Tunnel ausgefuehrt wird.
 void setStatusOut(PrintStream out)
          Setzt den Stream fuer die Status-Ausgaben des Modells.
 boolean startModelling()
          Diese Methode startet den Modell-Ablauf.
 void stopModelling()
          Diese Methode unterbricht den Modellablauf komplett.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

model

protected XuluModel model
Speichert das getunnelte Modell.

Constructor Detail

DynamicXuluModel

public DynamicXuluModel()
Erzeugt ein neues dynamisches Modell.


DynamicXuluModel

public DynamicXuluModel(XuluModel model)
Erzeugt ein neues dynamisches Modell.

Parameters:
model - zu tunnelndes Modell
Method Detail

setModel

public void setModel(XuluModel model)
Setzt das Modell das durch den Tunnel ausgefuehrt wird.

Specified by:
setModel in interface ModelTunnel
Parameters:
model - zu tunnelndes Modell

getModel

public XuluModel getModel()
Liefert das Modell das durch den Tunnel ausgefuehrt wird.

Specified by:
getModel in interface ModelTunnel

checkModel

protected void checkModel()
Prueft, ob dem dynamischen Modell bereits ein zu tunnelndes Modell zugeordnet ist.

Throws:
UnsupportedOperationException - falls noch kein zu tunnelndes Modell angegeben wurde

getContentManager

public ModelContentManager getContentManager()
Liefert den ContentManager des Modells.

Specified by:
getContentManager in interface XuluModel

initModel

public void initModel()
Diese Methode setzt alle internen Modell-Ressourcen auf einen Ausgangszustand zurueck, so dass das Modell komplett neu gestartet werden kann.
Bemerke: Auf die Ruecksetzung der externen Ressourcen, die von der Modellierungsplatform bereitgestellt werden hat das Modell i.d.R. keinen Einfluss. Hierfuer ist der Anwender verantwortlich.

Specified by:
initModel in interface XuluModel

isInitialised

public boolean isInitialised()
Prueft, ob das Modell initialisiert ist - sich also im Ausgangszustand befindet - und bereit ist gestartet zu werden.
Nach dem Modell-Start sollte diese Methode false liefern, da sich die internen Ressourcen dann nicht mehr im Ausgangszustand befinden!

Specified by:
isInitialised in interface XuluModel

disposeModel

public void disposeModel()
Diese Methode loescht alle internen Modell-Ressourcen aus dem Speicher und gibt die externen wieder frei.

Specified by:
disposeModel in interface XuluModel

isDisposed

public boolean isDisposed()
Prueft, ob das Modell (dessen interen Ressourcen) "zerstoert" sind.

Specified by:
isDisposed in interface XuluModel

startModelling

public boolean startModelling()
Diese Methode startet den Modell-Ablauf.

Specified by:
startModelling in interface XuluModel
Returns:
false wenn das Modell auf irgendeine Art (kontrolliert oder Fehler) abgebrochen wurde; true nur wenn das Modell komplett durchgelaufen ist

isRunning

public boolean isRunning()
Prueft, ob die Modellierung gerade am Laufen ist.

Specified by:
isRunning in interface XuluModel

stopModelling

public void stopModelling()
Diese Methode unterbricht den Modellablauf komplett. Ein Fortsetzen Alle Modell-Ressourcen sollten beim Aufrufen dieser Methode wieder freigegeben werden.

Specified by:
stopModelling in interface XuluModel

isStopped

public boolean isStopped()
Prueft, ob die Modellierung beendet ist.

Specified by:
isStopped in interface XuluModel

performError

public void performError()
Diese Methode wird aufgrufen, wenn ein unerwarteter Fehler bei der Modellierung auftritt, welcher das Beenden der Modellierung zu Folge hat. In dieser Methode muss das Modell dafuer sorgen, dass alle Ressourcen - die internen und insbesondere auch die externen - wieder freigegenen und ggf. aus dem Speicher entfernt werden.

Specified by:
performError in interface XuluModel

addModelListener

public boolean addModelListener(ModelListener listener)
Fuegt dem Model einen Listener hinzu.

Specified by:
addModelListener in interface XuluModel
Parameters:
listener - neuer ModelListener

removeModelListener

public boolean removeModelListener(ModelListener listener)
Entfernt einen Listener von dem Modell.

Specified by:
removeModelListener in interface XuluModel
Parameters:
listener - zu entfernender ModelListener

getStatusOut

public PrintStream getStatusOut()
Liefert den Stream fuer die Status-Ausgaben des Modells.

Specified by:
getStatusOut in interface XuluModel

setStatusOut

public void setStatusOut(PrintStream out)
Setzt den Stream fuer die Status-Ausgaben des Modells.

Specified by:
setStatusOut in interface XuluModel

getModelSpecificGUI

public Component getModelSpecificGUI()
Liefert (optional) eine modellspezifische GUI-Komponente.

Specified by:
getModelSpecificGUI in interface XuluModel
Returns:
null wenn das Modell keine zusaetzliche GUI zur Verfuegung stellt

getEvents

public Class<ModelEvent>[] getEvents()
Liefert (optional) eine modellspezifische GUI-Komponente.

Specified by:
getEvents in interface XuluModel
Returns:
null wenn das Modell keine zusaetzliche GUI zur Verfuegung stellt

getResourceProvider

public ResourceProvider getResourceProvider()
Liefert den ResourceProvider, der die Uebersetzungen fuer Modell-Ausgaben und modellspezifische GUI verwaltet.

Specified by:
getResourceProvider in interface XuluModel
Returns:
null, wenn das Modell nicht multi-lingual ist

resetCaptions

public void resetCaptions(Map<String,Object> captionMap)
Belegt die sprachspezifischen Elemente des Modells (Status-Ausgaben, GUI) neu mit Elementen aus der Map.

Parameters:
captionMap - Label-Beschreibungen