vips.model
Class AufrufAnweisung

java.lang.Object
  extended by vips.model.UIElement
      extended by vips.model.Anweisung
          extended by vips.model.AufrufAnweisung
All Implemented Interfaces:
Beobachtbar

public class AufrufAnweisung
extends Anweisung

Diese Klasse stellt den Aufruf einer anderen Operation, zB eines Struktogramms oder einer Bibilotheksfunktion dar.

Events:
-Wenn sich der Name der aufzurufenden Operation ändert
-Wenn sich der Name der Rückgabevariable ändert
-Wenn ein Argument hinzugefügt oder entfernt wird
-Wenn sich in einem Argument was ändert


Field Summary
 
Fields inherited from class vips.model.Anweisung
listeners, weiterleitung
 
Fields inherited from class vips.model.UIElement
RAND
 
Constructor Summary
AufrufAnweisung(AnweisungsContainer vater, int index, java.lang.String operation)
          Erzeugt eine neue AufrufAnweisung mit den gegebenen Parametern
AufrufAnweisung(org.jdom.Element e)
          Erzeugt Anweisung aus einem XML-Element
 
Method Summary
 void alleArgumenteEntfernen()
          Entfernt alle Argumente.
 java.util.Iterator argumenteIterator()
          Gibt einen Iterator über die Argument-Namen (Strings) zurück.
(package private)  void ausfuehren(java.lang.Object einzelschrittLock)
          Führt diese Anweisung aus.
(package private)  org.eclipse.swt.graphics.Point berechneBevorzugteGroesse(org.eclipse.swt.graphics.GC gc)
          Berechnet beste Größe.
 Ausdruck getArgument(java.lang.String name)
          Gibt den Ausdruck für das Argument name zurück, oder null, wenn für diesen Argumentnamen kein Ausdruck gesetzt ist
 java.lang.String getOperation()
          Gibt den Namen der Operation zurück, die aufgerufen wird.
static java.lang.String getXMLTagName()
          Gibt "aufruf_anweisung" zurück.
 java.lang.String getZuweisung()
          Gibt den Namen Rückgabevariable zurück
(package private)  void pruefen(java.util.Collection fehler, BenamterWertSammlung variablen)
          Prüft diese Anweisung.
 void setArgument(java.lang.String name, Ausdruck wert)
          Setzt das Argument name der aufzurufenden Operation auf einen bestimmten Wert.
 void setOperation(java.lang.String name)
          Setzt den Namen der Operation, die aufgerufen wird
 void setZuweisung(java.lang.String varName)
          Setzt den Namen der Variable, der der Rückgabewert der aufzurufenden Funktion zugewiesen wird.
 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.Anweisung
changeListenerEntfernen, changeListenerHinzufuegen, createFromXMLElement, getAnweisungAnPos, getContainer, getProjekt, getStruktogramm, setContainer
 
Methods inherited from class vips.model.UIElement
getBreite, getGroesse, getHintergrund, getHoehe, getPos, getX, getY, hintergrundZuruecksetzen, 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

AufrufAnweisung

public AufrufAnweisung(AnweisungsContainer vater,
                       int index,
                       java.lang.String operation)
Erzeugt eine neue AufrufAnweisung mit den gegebenen Parametern


AufrufAnweisung

public AufrufAnweisung(org.jdom.Element e)
Erzeugt Anweisung aus einem XML-Element

Method Detail

ausfuehren

void ausfuehren(java.lang.Object einzelschrittLock)
          throws BreakException,
                 ContinueException,
                 LaufzeitException,
                 TerminateException
Führt diese Anweisung 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 Operation unbekannt ist, es nicht für jeden Parameter ein Argument gibt, Parametertyp und Argumenttyp nicht übereinstimmen oder die Rückgabevariable nicht existiert, oder einen falschen Typ hat oder die Operation gar keinen Wert zurück gibt.
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.
Folgendes wird getestet:
  1. Gibt es eine Operation mit dem Namen?
  2. Wenn eine Rückgabevariable gesetzt wurde: Gibt die Operation auch was zurück?
  3. Gibt es die Rückgabevariable und stimmt ihr Typ?
  4. Gibts für jeden Parameter ein Argument und ist es korrekt?

Overrides:
pruefen in class Anweisung

setOperation

public void setOperation(java.lang.String name)
Setzt den Namen der Operation, die aufgerufen wird

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

getOperation

public java.lang.String getOperation()
Gibt den Namen der Operation zurück, die aufgerufen wird.


setZuweisung

public void setZuweisung(java.lang.String varName)
Setzt den Namen der Variable, der der Rückgabewert der aufzurufenden Funktion zugewiesen wird. Kann auch null sein, wenn keine Zuweisung erwünscht ist.


getZuweisung

public java.lang.String getZuweisung()
Gibt den Namen Rückgabevariable zurück


argumenteIterator

public java.util.Iterator argumenteIterator()
Gibt einen Iterator über die Argument-Namen (Strings) zurück.


alleArgumenteEntfernen

public void alleArgumenteEntfernen()
Entfernt alle Argumente.


setArgument

public void setArgument(java.lang.String name,
                        Ausdruck wert)
Setzt das Argument name der aufzurufenden Operation auf einen bestimmten Wert. Der Wert kann auch null sein, dann wird das Argument gelöscht. Existiert für das Argument bereits ein Ausdruck, wird er überschrieben.

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

getArgument

public Ausdruck getArgument(java.lang.String name)
Gibt den Ausdruck für das Argument name zurück, oder null, wenn für diesen Argumentnamen kein Ausdruck gesetzt ist

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

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 "aufruf_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