Class TempAttributeSemantics
- java.lang.Object
-
- de.bsvrz.pua.prot.interpreter.semantics.TempAttributeSemantics
-
- All Implemented Interfaces:
SemanticChecks
public class TempAttributeSemantics extends java.lang.Object implements SemanticChecks
Semantische Überprüfung der temporären Attribute.
-
-
Constructor Summary
Constructors Constructor Description TempAttributeSemantics(Semantics semantics, AttributeSemantics attributeSemantics)
-
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.
-
-
-
Constructor Detail
-
TempAttributeSemantics
public TempAttributeSemantics(Semantics semantics, AttributeSemantics attributeSemantics)
- Parameters:
semantics
- SemanticsattributeSemantics
- 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ählerAttributeSemantics.incAttributeCount()
erhöht.- Parameters:
ast
- Knoten (wird nur für Zeilenangabe in der Fehlermeldung benötigt)attribute
- Temporäres Attributtype
- Typ des temporären Attributsexpression
- 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 AttributscolumnName
- 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(vonaddTempAttributePlaceholder(String,String)
eingefügt) durch das jeweilige temporäre Attribut.- Specified by:
cleanUp
in interfaceSemanticChecks
- Parameters:
pp
- Wird nicht berücksichtigt.processScript
- Hat keine Bedeutung.- Throws:
SemanticErrorException
- Undefiniertes temporäres Attribut.
-
-