vips.model
Class WhileAnweisung

java.lang.Object
  extended by vips.model.UIElement
      extended by vips.model.Anweisung
          extended by vips.model.SchleifenAnweisung
              extended by vips.model.WhileAnweisung
All Implemented Interfaces:
BedingungsAnweisung, Beobachtbar

public class WhileAnweisung
extends SchleifenAnweisung
implements BedingungsAnweisung

Diese Klasse implementiert eine While-Schleife (Kopfgesteuerte Schleife).


Field Summary
 
Fields inherited from class vips.model.Anweisung
listeners, weiterleitung
 
Fields inherited from class vips.model.UIElement
RAND
 
Constructor Summary
WhileAnweisung(AnweisungsContainer vater, int index, Ausdruck bedingung)
          Erzeugt eine neue While-Schleife mit der gegebenen Bedingung.
WhileAnweisung(org.jdom.Element e)
           
 
Method Summary
(package private)  void ausfuehren(java.lang.Object einzelschrittLock)
          Führt diese Schleife aus
(package private)  org.eclipse.swt.graphics.Point berechneBevorzugteGroesse(org.eclipse.swt.graphics.GC gc)
          Berechnet beste Größe.
 Ausdruck getBedingung()
          Gibt die Schleifenbedingung zurück
static java.lang.String getXMLTagName()
          Gibt "while_anweisung" zurück.
(package private)  void pruefen(java.util.Collection fehler, BenamterWertSammlung variablen)
          Prüft diese Anweisung.
 void setBedingung(Ausdruck b)
          Setzt die Schleifenbedingung
 org.jdom.Element toXMLElement()
          Wandelt diese Anweisung in ein entsprechendes XML-Tag um.
(package private)  void zeichne(org.eclipse.swt.graphics.GC gc)
          Zeichnet die Anweisung auf den übergebenen GC.
 
Methods inherited from class vips.model.SchleifenAnweisung
getAnweisungAnPos, getRumpf, hintergrundZuruecksetzen
 
Methods inherited from class vips.model.Anweisung
changeListenerEntfernen, changeListenerHinzufuegen, createFromXMLElement, getContainer, getProjekt, getStruktogramm, setContainer
 
Methods inherited from class vips.model.UIElement
getBreite, getGroesse, getHintergrund, getHoehe, getPos, getX, getY, hoeheAnpassen, setBreite, setGroesse, setHintergrund, setHoehe, setPos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WhileAnweisung

public WhileAnweisung(AnweisungsContainer vater,
                      int index,
                      Ausdruck bedingung)
Erzeugt eine neue While-Schleife mit der gegebenen Bedingung.

Events:
Wenn sich die Bedingung ändert

Throws:
java.lang.IllegalArgumentException - Wenn bedingung null ist

WhileAnweisung

public WhileAnweisung(org.jdom.Element e)
               throws FalschesDateiFormatException
Throws:
FalschesDateiFormatException
Method Detail

ausfuehren

void ausfuehren(java.lang.Object einzelschrittLock)
          throws BreakException,
                 ContinueException,
                 LaufzeitException,
                 TerminateException
Führt diese Schleife aus

Overrides:
ausfuehren in class Anweisung
Parameters:
einzelschrittLock - Wenn ungleich null, ruft die Anweisung am Anfang auf dieses Objekt einzelschrittLock.wait auf.
Throws:
LaufzeitException - Wenn die Bedingung nicht vom Typ Boolean ist
BreakException - Wird von einer BreakAnweisung geworfen, um die umgebende Schleife zu beenden.
ContinueException - Wird von einer ContinueAnweisung geworfen, um zum Anfang eines Schleifenrumpfs zu springen.
TerminateException - Wenn der Ausführungsthread unterbrochen wurde.

pruefen

void pruefen(java.util.Collection fehler,
             BenamterWertSammlung variablen)
Prüft diese Anweisung.
Folgende Punkte werden geprüft:
  1. Kann die Bedingung ausgewertet werden?
  2. Ist sie vom Typ Boolean?

Overrides:
pruefen in class SchleifenAnweisung

setBedingung

public void setBedingung(Ausdruck b)
Setzt die Schleifenbedingung

Specified by:
setBedingung in interface BedingungsAnweisung
Throws:
java.lang.IllegalArgumentException - Wenn b null ist

getBedingung

public Ausdruck getBedingung()
Gibt die Schleifenbedingung zurück

Specified by:
getBedingung in interface BedingungsAnweisung

toXMLElement

public org.jdom.Element toXMLElement()
Description copied from class: Anweisung
Wandelt diese Anweisung in ein entsprechendes XML-Tag um.
Implementierende Klassen dürfen auch null zurückgeben, damit zeigen sie an, dass sie nicht geschrieben werden sollen/brauchen, z.B. die LeereAnweisung.

Specified by:
toXMLElement in class Anweisung

getXMLTagName

public static java.lang.String getXMLTagName()
Gibt "while_anweisung" zurück.


berechneBevorzugteGroesse

org.eclipse.swt.graphics.Point berechneBevorzugteGroesse(org.eclipse.swt.graphics.GC gc)
Berechnet beste Größe.

Specified by:
berechneBevorzugteGroesse in class UIElement
Parameters:
gc - Der GC, auf den das Element gezeichnet werden würde

zeichne

void zeichne(org.eclipse.swt.graphics.GC gc)
Zeichnet die Anweisung auf den übergebenen GC.

Specified by:
zeichne in class UIElement