Class TempAttributeSemantics

  • All Implemented Interfaces:
    SemanticChecks

    public class TempAttributeSemantics
    extends java.lang.Object
    implements SemanticChecks
    Semantische Überprüfung der temporären Attribute.
    • Method Summary

      Modifier and Type Method Description
      void addTempAttributeDefinition​(antlr.collections.AST ast, java.lang.String attribute, java.lang.String type, ExpressionTree expression)
      Überprüft die Definition eines temporären Attributs.
      void addTempAttributePlaceholder​(java.lang.String name, java.lang.String columnName)
      Fügt ein Platzhalter Attribut in die Liste der Attribute bzw.
      void cleanUp​(ProcessingParameter pp, boolean processScript)
      Führt eine abschließende Überprüfung durch.
      - Stellt sicher, dass jedes verwendete temporäre Attribut eine gültige Definition besitzt.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TempAttributeSemantics

        public TempAttributeSemantics​(Semantics semantics,
                                      AttributeSemantics attributeSemantics)
        Parameters:
        semantics - Semantics
        attributeSemantics - AttributeSemantics
    • Method Detail

      • addTempAttributeDefinition

        public void addTempAttributeDefinition​(antlr.collections.AST ast,
                                               java.lang.String attribute,
                                               java.lang.String type,
                                               ExpressionTree expression)
                                        throws CriticalParserException
        Überprüft die Definition eines temporären Attributs. Falls es auf ein reales Attribut verweist, wird der Attribut-Zähler AttributeSemantics.incAttributeCount() erhöht.
        Parameters:
        ast - Knoten (wird nur für Zeilenangabe in der Fehlermeldung benötigt)
        attribute - Temporäres Attribut
        type - Typ des temporären Attributs
        expression - Ausdruck um den Wert des temporären AttributeDescription zu berechnen
        Throws:
        CriticalParserException - Falls das Attribut nicht korrekt definiert wurde oder es zu einem Kommunikationsfehler kommt
      • addTempAttributePlaceholder

        public void addTempAttributePlaceholder​(java.lang.String name,
                                                java.lang.String columnName)
        Fügt ein Platzhalter Attribut in die Liste der Attribute bzw. Spalten ein. Dies ist notwendig, damit die Reihenfolge der Attribute bestehen bleibt! Der Platzhalter muss abschließend (@see #cleanUp(ProcessingParameter, boolean)} durch das jeweilige temporäre Attribut ersetzt werden.
        Parameters:
        name - Name des temporären Attributs
        columnName - ColumnName
      • cleanUp

        public void cleanUp​(ProcessingParameter pp,
                            boolean processScript)
                     throws SemanticErrorException
        Führt eine abschließende Überprüfung durch.
        - Stellt sicher, dass jedes verwendete temporäre Attribut eine gültige Definition besitzt.
        - Stellt sicher, dass es keine Rekursion aufgetreten ist.
        - Ersetzt Platzhalter-Attribute(von addTempAttributePlaceholder(String,String) eingefügt) durch das jeweilige temporäre Attribut.
        Specified by:
        cleanUp in interface SemanticChecks
        Parameters:
        pp - Wird nicht berücksichtigt.
        processScript - Hat keine Bedeutung.
        Throws:
        SemanticErrorException - Undefiniertes temporäres Attribut.