Class ExpressionLeaf


  • public class ExpressionLeaf
    extends ExpressionTree
    Repräsentiert ein Blatt in einem ExpressionTree Ein Blatt enthält entweder eine Zeichenkette, Bool, Attribute, Zahlen oder eine Funktion mit Ausdruck
    • Constructor Detail

      • ExpressionLeaf

        public ExpressionLeaf​(java.lang.Boolean b)
        Legt ein Blatt mit einem booleschen Wert an.
        Parameters:
        b - Wert des Blattes
      • ExpressionLeaf

        public ExpressionLeaf​(java.lang.String s)
        Legt ein Blatt an, das einen String speichert
        Parameters:
        s - String
      • ExpressionLeaf

        public ExpressionLeaf​(AttributeDescription a)
        Legt ein Blatt an, das ein Attribut speichert
        Parameters:
        a - Attribut
      • ExpressionLeaf

        public ExpressionLeaf​(AttributeDescription[] a)
        Legt ein Blatt an, das mehrere Attribute speichert. Dies ist der Fall, wenn auf ein Attribut verwiesen werden soll, dass z.B. Aliase benutzt und deshalb mehrere Objekte verwendet.
        Parameters:
        a - Attribut
      • ExpressionLeaf

        public ExpressionLeaf​(java.lang.Double d)
        Legt ein Blatt an, das eine Fließkommazahl speichert
        Parameters:
        d - Double
      • ExpressionLeaf

        public ExpressionLeaf​(java.lang.Long n)
        Legt ein Blatt an, das eine Ganzzahl speichert
        Parameters:
        n - Ganzzahl
      • ExpressionLeaf

        public ExpressionLeaf​(java.lang.String functionName,
                              java.util.List<ExpressionTree> expressionList)
                       throws CriticalParserException
        Legt ein Blatt an, das eine Funktion beinhaltet
        Parameters:
        functionName - Name der Klasse, die die Funktion repräsentiert
        expressionList - Operanden der Funktion (Jedes Listenelement entspricht einem Operanden)
        Throws:
        CriticalParserException - Zur Funktion passende KLasse existiert nicht.
    • Method Detail

      • getAttributes

        public java.util.List<AttributeDescription> getAttributes()
        Description copied from class: ExpressionTree
        Liefert alle Attribute, auf die der Baum zugreift, zurück. Liefert erst alle Attribute aus dem linken Teilbaum des Baumes. Anschließend werden die Objekte aus dem rechten Teilbaum zurückgegeben. Wird ein Attribut mehrfach verwendet, so wird nur das erste Auftreten berücksichtigt.
        Overrides:
        getAttributes in class ExpressionTree
        Returns:
        Liste mit Attributen, die in diesem Blatt gespeichert werden. Falls kein Attribut abgelegt ist, wird leere Liste zurückgegeben
      • evaluateEx

        public ExpressionResultAndState evaluateEx​(java.util.Hashtable<RealElement,​BaseDataSet> realElements,
                                                   java.util.Hashtable<TempAttributeDescription,​TempAttribut> tempElements,
                                                   int pseudoObjectIndex)
        Gibt den Ausdruck zurück, der in diesem Blatt abgelegt ist Ist es ein Attribut, wird der Wert aus der übergebenen Hashtable gesucht. Falls der Wert nicht bestimmt werden konnte, dann liefert ExpressionResult.getType() den Wert ExpressionResult.ResultType.NONE. Falls der Typ des Verwendeten realen Attributs nicht unterstützt wird (z.B. ReferenceAttributeType) ist result.type = error;
        Overrides:
        evaluateEx in class ExpressionTree
        Parameters:
        realElements - Mapping der realen Elemente zu den ihnen zugeordeten Werten.
        tempElements - Mapping der temporären Attribute zu den ihnen zugeordneten Werten.
        pseudoObjectIndex - Falls ein Attribut Aliase verwendet kann hier der Pseudoobjekt-Index festgelegt werden, von welchem Pseudoobjekt/Alias der Wert geholt werden soll. Ansonsten -1.
        Returns:
        Wert, der in diesem Blatt gespeichert ist.
      • getNumColumns

        public int getNumColumns()
        Description copied from class: ExpressionTree
        Gibt zurück, für wie viele Spalten ein TempAttribut definiert werden soll, dass diesen Ausdruck verwendet (bei der Verwendung von Aliasen in Attributen)
        Overrides:
        getNumColumns in class ExpressionTree
        Returns:
        Anzahl der Spalten
      • createLongLeaf

        public static ExpressionLeaf createLongLeaf​(antlr.collections.AST ast,
                                                    java.lang.String number)
                                             throws SemanticErrorException
        Erzeugt ein Blatt das die ganzzahl 'number' speichert
        Parameters:
        ast - Knoten, der die Zahl enthält (wird nur für die Zeilenangabe in der Fehlermeldung benötigt)
        number - Ganz- oder Fliesskommazahl
        Returns:
        Blatt dass die Zahl enthält.
        Throws:
        SemanticErrorException - Falls 'number' eine ungültige Zahl ist
      • createDoubleLeaf

        public static ExpressionLeaf createDoubleLeaf​(antlr.collections.AST ast,
                                                      java.lang.String number)
                                               throws SemanticErrorException
        Erzeugt ein Blatt das die Fließkommazahl 'number' speichert
        Parameters:
        ast - Knoten, der die Zahl enthält (wird nur für die Zeilenangabe in der Fehlermeldung benötigt)
        number - Ganz- oder Fliesskommazahl
        Returns:
        Blatt dass die Zahl enthält.
        Throws:
        SemanticErrorException - Falls 'number' eine ungültige Zahl ist
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class ExpressionTree
        See Also:
        Object.toString()
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class ExpressionTree
        See Also:
        Object.equals(java.lang.Object)
      • getBool

        public java.lang.Boolean getBool()
        Returns:
        Liefert den abgelegten boolschen Wert.
      • getDouble

        public java.lang.Double getDouble()
        Returns:
        Liefert den abgelegten double Wert.
      • getLong

        public java.lang.Long getLong()
        Returns:
        Liefert den abgelegten Long Wert.
      • getString

        public java.lang.String getString()
        Returns:
        Liefert den abgelegten String.