Class MiscellaneousSemantics

  • All Implemented Interfaces:
    SemanticChecks

    public class MiscellaneousSemantics
    extends java.lang.Object
    implements SemanticChecks
    Diverse Semantiküberprüfungen.
    • 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 zu placeholder passenden, gebundenen Aspekt (als Aspekt-Pid) zurück
      void setConstraint​(ExpressionTree expression, boolean merge)
      Setzt die 'Einschränkung'sanweisung
      void setNoChangeMarker​(de.bsvrz.sys.funclib.losb.datk.NoChangeMarker noChangeMarker)
      Setzt die Übertragungsart von "Keine Änderungen"-Datensätzen
      void setPostFilter​(antlr.collections.AST ast, java.lang.String postFilter)
      Legt den Nachfilter fest
      void setProtocolType​(de.bsvrz.sys.funclib.losb.datk.ProtocolType type)
      Setzt den Typ des Protokolls
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 soll
        index - 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 zu placeholder 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 - Ausdruck
        merge - 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 interface SemanticChecks
        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.