theater
Class Performance

java.lang.Object
  extended by theater.Performance

public class Performance
extends Object

Die Klasse Performance definiert Methoden zur Steuerung und Verwaltung der Ausführung von Threadnocchio-Programmen(stop, suspend, setSpeed, freeze, unfreeze).

Weiterhin werden Methoden definiert, die unmittelbar nach entsprechenden Steuerungsaktionen aufgerufen werden, und zwar auch, wenn die Aktionen durch die Steuerungsbuttons des Simulators ausgelöst wurden(started, stopped, suspended, resumed, speedChanged). Möchte ein Programmierer zusätzliche Aktionen mit den entsprechenden Steuerungsaktionen einhergehen lassen, kann er eine Unterklasse der Klasse Performance definieren und hierin die entsprechende Methode überschreiben.

Zusätzlich stellt die Klasse Performance eine Methode playSound zur Verfügung, mit der eine Audio-Datei abgespielt werden kann. Die Datei muss sich im Unterverzeichnis "sounds" des entsprechenden Theraterstücks befinden. Unterstützt werden die Formate wav, au und aiff.

Über die Methode setActiveStage ist es möglich, die aktuell aktive Bühne gegen eine andere Bühne auszutauschen, d.h. das Bühnenbild zu wechseln. Unter Umständen aktive Akteure der alten Bühne werden dabei nicht automatisch gestoppt. Die Methode getActiveStage liefert die gerade aktive Bühne.

Das während einer Aufführung aktuelle Performance-Objekt kann mit Hilfe der statischen Methode getPerformance ermittelt werden. Ein Wechsel des Performance-Objektes ist während einer Aufführung nicht möglich.

Version:
1.0 (12.11.2008)
Author:
Dietrich Boles, Universität Oldenburg, Germany

Field Summary
static int DEF_SPEED
          Default-Geschwindigkeit
static int MAX_SPEED
          Maximale Geschwindigkeit
static int MIN_SPEED
          Minimale Geschwindigkeit
 
Constructor Summary
Performance()
          Default-Konstruktor zur Initialisierung eines Performance-Objektes.
 
Method Summary
 void freeze()
          Der Aufruf dieser Methode führt dazu, dass die Ansicht der Bühne "eingeforen" wird, d.h. es werden keinerlei Zustandsänderungen mehr sichtbar, bevor nicht die Methode unfreeze aufgerufen worden ist.
 Stage getActiveStage()
          Liefert die aktuell dargestellte Bühne
static Performance getPerformance()
          Liefert das aktuell gesetzte Performance-Objekte
 int getSpeed()
          Liefert die aktuelle Ausführungsgeschwindigkeit der Performance.
 boolean isFrozen()
          Überprüft ob sich das Theaterstück im Eingefroren-Zustand befindet
 void playSound(String soundFile)
          Spielt einen Sound ab, der aus einer Datei geladen wird.
 void resumed()
          Diese Methode wird unmittelbar nach dem Fortsetzen eines angehaltenen Theaterstücks aufgerufen.
 void setActiveStage(Stage stage)
          Wechselt die Bühne.
 void setSpeed(int newSpeed)
          Ändert die aktuell eingestellte Ausführungsgeschwindigkeit.
 void speedChanged(int newSpeed)
          Diese Methode wird aufgerufen, wenn sich die Geschwindigkeit des Theaterstücks ändert.
 void started()
          Diese Methode wird unmittelbar nach dem Starten eines Theaterstücks aufgerufen.
 void stop()
          Stopped eine Performance und setzt sie in den Zustand STOPPED.
 void stopped()
          Diese Methode wird unmittelbar nach dem Stoppen eines Theaterstücks aufgerufen.
 void suspend()
          Pausiert eine Performance und setzt sie in den Zustand PAUSED.
 void suspended()
          Diese Methode wird unmittelbar nach dem Anhalten/Pausieren eines Theaterstücks aufgerufen.
 void unfreeze()
          Bei Aufruf dieser Methode wird der Eingefroren-Zustand wieder verlassen.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEF_SPEED

public static int DEF_SPEED
Default-Geschwindigkeit


MAX_SPEED

public static int MAX_SPEED
Maximale Geschwindigkeit


MIN_SPEED

public static int MIN_SPEED
Minimale Geschwindigkeit

Constructor Detail

Performance

public Performance()
Default-Konstruktor zur Initialisierung eines Performance-Objektes. Der Zustand des Performance-Objektes wird auf STOPPED gesetzt, die Geschwindigkeit auf DEF_SPEED.

Method Detail

freeze

public void freeze()
Der Aufruf dieser Methode führt dazu, dass die Ansicht der Bühne "eingeforen" wird, d.h. es werden keinerlei Zustandsänderungen mehr sichtbar, bevor nicht die Methode unfreeze aufgerufen worden ist.


getActiveStage

public Stage getActiveStage()
Liefert die aktuell dargestellte Bühne

Returns:
die aktuell dargestellte Bühne

getPerformance

public static Performance getPerformance()
Liefert das aktuell gesetzte Performance-Objekte

Returns:
das aktuell gesetzte Performance-Objekt

getSpeed

public int getSpeed()
Liefert die aktuelle Ausführungsgeschwindigkeit der Performance.

Returns:
die aktuelle Ausführungsgeschwindigkeit der Performance

isFrozen

public boolean isFrozen()
Überprüft ob sich das Theaterstück im Eingefroren-Zustand befindet

Returns:
true, falls sich das Theaterstück im Eingefroren-Zustand befindet; false, sonst

playSound

public void playSound(String soundFile)
               throws IllegalArgumentException
Spielt einen Sound ab, der aus einer Datei geladen wird. Erlaubt sind die Formate au, aiff und wav.

Parameters:
soundFile - Name der Sounddatei; die Datei muss sich im Unterverzeichnis sounds des Theaterstück-Verzeichnisses befinden
Throws:
IllegalArgumentException - wird geworfen, wenn die angegebene Datei keine gültige lesbare Sounddatei ist

resumed

public void resumed()
Diese Methode wird unmittelbar nach dem Fortsetzen eines angehaltenen Theaterstücks aufgerufen.

Sollen mit dem Fortsetzen eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.


setActiveStage

public void setActiveStage(Stage stage)
Wechselt die Bühne. Wird ein Bühnenwechsel während der Aufführung eines Theaterstücks angestoßen, werden alle Akteure der neuen Bühne automatisch gestartet, insofern sie noch nicht gestartet sind. Die Akteure der alten Bühne laufen (im Hintergrund) weiter.

Parameters:
stage - die neue Bühne

setSpeed

public void setSpeed(int newSpeed)
Ändert die aktuell eingestellte Ausführungsgeschwindigkeit. Die minimale Geschwindigkeit kann über die Konstante MIN_SPEED, die maximale Geschwindigkeit über die Konstante MAX_SPEED abgefragt werden. Wird als gewünschte Geschwindigkeit ein kleinerer bzw. größerer Wert als die entsprechende Konstante übergeben, wird die Geschwindigkeit automatisch auf MIN_SPEED bzw. MAX-SPEED gesetzt.

Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird auch aufgerufen, wenn der Nutzer im Theater-Simulator den Geschwindigkeitsregler benutzt.

Parameters:
newSpeed - die neue Ausführungsgeschwindigkeit, die zwischen MIN_SPEED und MAX_SPEED liegen sollte

speedChanged

public void speedChanged(int newSpeed)
Diese Methode wird aufgerufen, wenn sich die Geschwindigkeit des Theaterstücks ändert.

Sollen mit einer Geschwindigkeitsänderung weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

Parameters:
newSpeed - die neue Geschwindigkeit

started

public void started()
Diese Methode wird unmittelbar nach dem Starten eines Theaterstücks aufgerufen.

Sollen mit dem Start eines Theaterstücks weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.


stop

public void stop()
Stopped eine Performance und setzt sie in den Zustand STOPPED. Wenn sich die Performance bereits im Zustand STOPPED befindet, passiert nichts.

Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird auch aufgerufen, wenn der Nutzer im Theater-Simulator den Stopp-Button anklickt.


stopped

public void stopped()
Diese Methode wird unmittelbar nach dem Stoppen eines Theaterstücks aufgerufen.

Sollen mit dem Stoppen eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.


suspend

public void suspend()
Pausiert eine Performance und setzt sie in den Zustand PAUSED. Die Ausführung dieser Methode bewirkt nur dann etwas, wenn sich die Performance im Zustand RUNNING befindet.

Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird auch aufgerufen, wenn der Nutzer im Threadnocchio-Simulator den Pause-Button anklickt.


suspended

public void suspended()
Diese Methode wird unmittelbar nach dem Anhalten/Pausieren eines Theaterstücks aufgerufen.

Sollen mit dem Anhalten eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.


unfreeze

public void unfreeze()
Bei Aufruf dieser Methode wird der Eingefroren-Zustand wieder verlassen. Befindet sich der aufrufene Thread nicht im Eingefroren-Zustand, bewirkt ein Aufruf dieser Methode nichts.