public class UdaInterpreter extends Thread implements de.bsvrz.dav.daf.main.ApplicationCloseActionHandler
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private WeakHashMap<UdaAktivitaet,UdaAktivitaet> |
aktivitaeten
die Liste der nebenläufigen Aktivitäten, die neben dem Hauptskript
ausgeführt werden.
|
private AnweisungsBlock |
anweisungsBlock
der Anweisungsblock des Hauptskripts.
|
private de.bsvrz.dav.daf.main.ClientDavConnection |
connection
die Datenverteilerverbindung, über die das Skript kommuniziert.
|
private String |
connectionError
die Fehlermeldung beim Abbruch der Datenverteilerverbindung des
Interpreters.
|
private Map<String,Object> |
funktionen
die Liste aller nutzerdefinierten Funktionen.
|
private static boolean |
handlerRegistriert
Marker, für die Registrierung der Handler für die Ausführung von
Operationen.
|
private de.bsvrz.dav.daf.main.ClientDavInterface |
initialConnection
die initiale Verbindung des Interpreters, d.h. die Verbindung mit dem die
umgebende Anwendung ausgeführt wird.
|
private SkriptKontext |
kontext
der Kontext für die Ausführung des Skripts.
|
private Set<InterpreterListener> |
listenerListe
Menge der Interpreterlistener.
|
private Map<String,Object> |
quantoren
die Liste aller nutzerdefinierten Quantoren.
|
private boolean |
running
markiert den Laufzustand des Interpreters.
|
private SkriptLauf |
skriptLauf
der Skriptlauf, der mit dem Interpreter ausgeführt wird.
|
private Timer |
skriptTimer
der Timer zur Ausführung von zyklischen Operationen und
Timeout-Überwachungen.
|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
UdaInterpreter(de.bsvrz.dav.daf.main.ClientDavInterface initialConnection,
SkriptLauf skriptLauf)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
addAktivitaet(UdaAktivitaet aktivitaet)
fügt der Liste der nebenlaüfigen Aktivitäten eine neue hinzu.
|
void |
addAnweisung(de.bsvrz.sys.funclib.bitctrl.interpreter.Ausdruck ausdruck)
fügt dem Hauptskript des Interpreters eine Anweisung hinzu.
|
void |
addListener(InterpreterListener listener)
fügt einen
InterpreterListener hinzu. |
void |
anhalten()
hält die Ausführung der Anweisungen des Hauptthreads an.
|
void |
ausgabe(ProtokollEintrag daten)
gibt den übergebenen Text über alle Ausgabekanäle des Skripts aus.
|
void |
beenden()
beendet die Ausführung des Skripts.
|
void |
close(String error)
.
|
void |
fortsetzen()
setzt die Ausführung eines zuvor angehaltenen Skripts fort.
|
de.bsvrz.dav.daf.main.ClientDavConnection |
getConnection()
liefert die Datenverteilerverbindung des Interpreters.
|
FunktionsDefinition |
getFunktion(String name)
liefert die nuzterdefinierte Funktion mit dem angegebenen Namen.
|
QuantorDefinition |
getQuantor(String name)
liefert den nuzterdefinierten Quantor mit dem angegebenen Namen.
|
SkriptLauf |
getSkriptLauf()
liefert den Skriptlauf, für den das Interpreterobjekt angelegt wurde.
|
Timer |
getTimer()
liefert den Timer des Interpreters.
|
static Object |
getZuweisbareDaten(Object dest,
Object daten)
prüft, ob Daten einem Zielobjekt zugewiesen werden können und nimmt
gegebenenfalls eine Konvertierung vor.
|
boolean |
isRunning()
ermittelt, ob der Interpreter läuft.
|
static void |
main(String[] args)
führt den Interpreter lokal aus.
|
void |
removeListener(InterpreterListener listener)
entfernt einen
InterpreterListener . |
void |
run()
führt das zugeordnete Uda-Skript aus.
|
void |
setFunktion(String name,
FunktionsDefinition definition)
fügt dem Skript eine nutzerdefinierte Funktion hinzu.
|
void |
setQuantor(String name,
QuantorDefinition definition)
fügt dem Skript einen nutzerdefinierte Quantor hinzu.
|
private void |
stopMitFehler(Exception exception)
die Funktion bricht liefert einen bei der Konstruktion oder dem Starten
des Interpreters aufgetretenen Fehler als Exception zurück.
|
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
private static boolean handlerRegistriert
private final SkriptLauf skriptLauf
private final SkriptKontext kontext
private final WeakHashMap<UdaAktivitaet,UdaAktivitaet> aktivitaeten
private final AnweisungsBlock anweisungsBlock
private de.bsvrz.dav.daf.main.ClientDavConnection connection
private final Timer skriptTimer
private final Map<String,Object> funktionen
private final Set<InterpreterListener> listenerListe
private final de.bsvrz.dav.daf.main.ClientDavInterface initialConnection
private boolean running
private String connectionError
public UdaInterpreter(de.bsvrz.dav.daf.main.ClientDavInterface initialConnection, SkriptLauf skriptLauf) throws UdaInterpreterException
initialConnection
- die Verbindung der umgebenden AnwendungskriptLauf
- den SkriptLaufUdaInterpreterException
- bei der Erstellung des Interpreters ist ein Fehler
aufgetreten. Mögliche Probleme sind:
public static Object getZuweisbareDaten(Object dest, Object daten)
dest
- die alten Daten des Zielsdaten
- die Daten, die zugewiesen werden sollenpublic static void main(String[] args)
args
- die Kommandozeilen-Parameterpublic void addAktivitaet(UdaAktivitaet aktivitaet)
aktivitaet
- die Aktivitätpublic void addAnweisung(de.bsvrz.sys.funclib.bitctrl.interpreter.Ausdruck ausdruck)
ausdruck
- die neue Anweisungpublic void addListener(InterpreterListener listener)
InterpreterListener
hinzu.listener
- der hinzuzufügende ListenerremoveListener(InterpreterListener)
public void anhalten()
public void ausgabe(ProtokollEintrag daten)
daten
- die auszugebenden Datenpublic void beenden()
public void close(String error)
ApplicationCloseActionHandler
, um zu verhindern, das das Beenden
der Verbindung, die ein Interpreter verwendet hat das gesamte System
beendet.close
in interface de.bsvrz.dav.daf.main.ApplicationCloseActionHandler
ApplicationCloseActionHandler.close(java.lang.String)
public void fortsetzen()
public de.bsvrz.dav.daf.main.ClientDavConnection getConnection()
public FunktionsDefinition getFunktion(String name)
name
- der Name der gesuchten Funktion.setFunktion(String, FunktionsDefinition)
public QuantorDefinition getQuantor(String name)
name
- der Name des gesuchten Quantors.setQuantor(String, QuantorDefinition)
public SkriptLauf getSkriptLauf()
public Timer getTimer()
public boolean isRunning()
true
, wenn er aktiv istpublic void removeListener(InterpreterListener listener)
InterpreterListener
.listener
- der zu entfernende ListeneraddListener(InterpreterListener)
public void run()
run
in interface Runnable
run
in class Thread
Thread.run()
public void setFunktion(String name, FunktionsDefinition definition)
name
- der Name der Funktiondefinition
- die FunktionsdefinitiongetFunktion(String)
public void setQuantor(String name, QuantorDefinition definition)
name
- der Name des Quantorsdefinition
- die QuantordefinitiongetQuantor(String)
private void stopMitFehler(Exception exception) throws UdaInterpreterException
exception
- die aufgetretene Exception bei der Konstruktion des
InterpretersUdaInterpreterException
- die verallgemeinerte FehlermeldungCopyright © 2017 BitCtrl Systems GmbH. All rights reserved.