Class MiscellaneousSemantics
- java.lang.Object
-
- de.bsvrz.pua.prot.interpreter.semantics.MiscellaneousSemantics
-
- All Implemented Interfaces:
SemanticChecks
public class MiscellaneousSemantics extends java.lang.Object implements SemanticChecks
Diverse Semantiküberprüfungen.
-
-
Constructor Summary
Constructors Constructor Description MiscellaneousSemantics(Semantics semantics)
-
Method Summary
Modifier and Type Method Description void
addDurationAttribute()
Fügt das Zeitdauer-Attribut in die Liste der im Spaltenbereich definierten Attribute ein.void
addStandardObjects(antlr.Token token, java.util.List<java.lang.String> pidList)
Fügt Objekte, für die das Protokoll erstellt werden soll, hinzu.void
check(antlr.Token token, boolean[] field, int index)
Überprüft ob ein Bereich bereits definiert wurde oder ob bestimmte Schlüsselwörter mehrmals verwendet weden.void
cleanUp(ProcessingParameter pp, boolean processScript)
Abschließende Semantiküberprüfung.java.lang.String
getBinding(java.lang.String placeholder)
Liefert den zuplaceholder
passenden, gebundenen Aspekt (als Aspekt-Pid) zurückvoid
setConstraint(ExpressionTree expression, boolean merge)
Setzt die 'Einschränkung'sanweisungvoid
setNoChangeMarker(de.bsvrz.sys.funclib.losb.datk.NoChangeMarker noChangeMarker)
Setzt die Übertragungsart von "Keine Änderungen"-Datensätzenvoid
setPostFilter(antlr.collections.AST ast, java.lang.String postFilter)
Legt den Nachfilter festvoid
setProtocolType(de.bsvrz.sys.funclib.losb.datk.ProtocolType type)
Setzt den Typ des Protokolls
-
-
-
Constructor Detail
-
MiscellaneousSemantics
public MiscellaneousSemantics(Semantics semantics)
- Parameters:
semantics
- Semantics
-
-
Method Detail
-
addDurationAttribute
public void addDurationAttribute()
Fügt das Zeitdauer-Attribut in die Liste der im Spaltenbereich definierten Attribute ein.
-
addStandardObjects
public void addStandardObjects(antlr.Token token, java.util.List<java.lang.String> pidList) throws CriticalParserException
Fügt Objekte, für die das Protokoll erstellt werden soll, hinzu. Enthält die Liste nur ein Element, so handelt es sich dabei um ein Objekt, das hinzugefügt werden soll. Enthält pidList mehr als ein Element, so handelt es sich bei dem ersten Element um ein Objekt, und bei den übrigen Elementen um Mengen, wobei jede Menge immer die nachfolgende Menge enthält. Die Objekte der letzten Menge werden hinzugefügt.- Parameters:
token
- Token (Nur für die Zeilenangabe bei den Fehlermeldungen nötig)pidList
- Liste des Objektes und der Mengen.- Throws:
CriticalParserException
- Falls es zu einem Fehler kommt
-
check
public void check(antlr.Token token, boolean[] field, int index) throws SemanticErrorException
Überprüft ob ein Bereich bereits definiert wurde oder ob bestimmte Schlüsselwörter mehrmals verwendet weden.- Parameters:
token
- Token (Nur für die Zeilenangabe bei den fehlermeldungen nötig)field
- Bereich, der überprüft werden sollindex
- Index, der überprüft wird- Throws:
SemanticErrorException
- Falls Bereiche oder bestimmte Schlüsselwörter mehrfach verwendet werden.
-
getBinding
public java.lang.String getBinding(java.lang.String placeholder)
Liefert den zuplaceholder
passenden, gebundenen Aspekt (als Aspekt-Pid) zurück- Parameters:
placeholder
- Platzhalter des Aspekts- Returns:
- Aspekt, der an den Platzhalter gebunden ist. Falls keine Bindung existiert, wird der Platzhalter zurückgegeben.
-
setConstraint
public void setConstraint(ExpressionTree expression, boolean merge)
Setzt die 'Einschränkung'sanweisung- Parameters:
expression
- Ausdruckmerge
- True falls verschmolzen werden soll, sonst false
-
setPostFilter
public void setPostFilter(antlr.collections.AST ast, java.lang.String postFilter) throws SemanticErrorException
Legt den Nachfilter fest- Parameters:
ast
- Knoten (wird nur für Zeilenangabe in der Fehlermeldung benötigt)postFilter
- Klassenname des nachfilters- Throws:
SemanticErrorException
- Falls es zu einem Fehler kommt, z.B. weil die Nachfilterklasse nicht existiert.
-
setProtocolType
public void setProtocolType(de.bsvrz.sys.funclib.losb.datk.ProtocolType type)
Setzt den Typ des Protokolls- Parameters:
type
- True für Änderungs-, false für ein Statusprotokoll
-
setNoChangeMarker
public void setNoChangeMarker(de.bsvrz.sys.funclib.losb.datk.NoChangeMarker noChangeMarker)
Setzt die Übertragungsart von "Keine Änderungen"-Datensätzen- Parameters:
noChangeMarker
- Übertragungsart von "Keine Änderungen"-Datensätzen
-
cleanUp
public void cleanUp(ProcessingParameter pp, boolean processScript) throws SemanticErrorException
Abschließende Semantiküberprüfung. Stellt sicher, dass Bindungen zu allen freien Aspekten existieren. (Nur, falls processScript == true)- Specified by:
cleanUp
in interfaceSemanticChecks
- Parameters:
pp
- Wird nicht berücksichtigt.processScript
- True falls die Daten vollständig zur Datenaufbereitung sein müssen.- Throws:
SemanticErrorException
- Es gibt noch ungebundene Aspekte.
-
-