de.bsvrz.pua.prot.util
Class ExpressionLeaf

java.lang.Object
  extended by de.bsvrz.pua.prot.util.ExpressionTree
      extended by de.bsvrz.pua.prot.util.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

Version:
$Revision: 1.1 $ / $Date: 2008/01/22 16:38:06 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Nested Class Summary
static class ExpressionLeaf.LeafType
          Typ, der in diesem Blatt gespeichert wird.
 
Nested classes/interfaces inherited from class de.bsvrz.pua.prot.util.ExpressionTree
ExpressionTree.Operation
 
Field Summary
 
Fields inherited from class de.bsvrz.pua.prot.util.ExpressionTree
left, operation, right
 
Constructor Summary
ExpressionLeaf(AttributeDescription a)
          Legt ein Blatt an, das ein Attribut speichert
ExpressionLeaf(java.lang.Boolean b)
          Legt ein Blatt mit einem booleschen Wert an.
ExpressionLeaf(java.lang.Double n)
          Legt ein Blatt an, das eine Fließkommazahl speichert
ExpressionLeaf(java.lang.Long n)
          Legt ein Blatt an, das eine Ganzzahl speichert
ExpressionLeaf(java.lang.String s)
          Legt ein Blatt an, das einen String speichert
ExpressionLeaf(java.lang.String functionName, java.util.List<ExpressionTree> expressionList)
          Legt ein Blatt an, das eine Funktion beinhaltet
 
Method Summary
 boolean containsAttribute()
          Überprüft ob der Ausdruck ein Attribut enthält.
static ExpressionLeaf createDoubleLeaf(AST ast, java.lang.String number)
          Erzeugt ein Blatt das die Fließkommazahl 'number' speichert
static ExpressionLeaf createLongLeaf(AST ast, java.lang.String number)
          Erzeugt ein Blatt das die ganzzahl 'number' speichert
 boolean equals(java.lang.Object other)
           
 ExpressionResult evaluate(java.util.Hashtable<RealElement,BaseDataSet> realElements, java.util.Hashtable<TempAttributeDescription,TempAttribut> tempElements)
          Gibt den Ausdruck zurück, der in diesem Blatt abgelegt ist Ist es ein Attribut, wird der Wert aus der übergebenen Hashtable gesucht.
protected  void getAttributeOrder(java.util.ArrayList<AttributeDescription> list, java.util.HashSet<AttributeDescription> visited)
          Liefert alle Attribute auf die der Baum zugreift.
 java.util.List<AttributeDescription> getAttributes()
          Liefert alle Attribute, auf die der Baum zugreift, zurück.
 java.lang.Boolean getBool()
           
 java.util.HashSet<TempAttributeDescription> getDirectTempAttributes()
          Liefert ein Set mit den temporären Attributen, die dieser Ausdruck direkt verwendet.
 java.lang.Double getDouble()
           
 java.util.List<ExpressionTree> getExpressionList()
           
 ExpressionInterface getExpressionObject()
           
 RealAttributeDescription getFirstRealAttribute()
          Liefert das erste Reale Attribut, das im Ausdruck verwendet wird.
 TempAttributeDescription getFirstTempAttribute()
          Liefert das erste temporäre Attribut, das im Ausdruck verwendet wird.
 java.lang.Long getLong()
           
 java.util.HashSet<RealAttributeDescription> getRealAttributes()
          Liefert alle realen Attribute die im Ausdruck verwendet werden.
 java.lang.String getString()
           
 ExpressionLeaf.LeafType getType()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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(java.lang.Double n)
Legt ein Blatt an, das eine Fließkommazahl speichert

Parameters:
n - 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:
HashSet mit dem Attribut, das in diesem Blatt gespeichert wird. Falls kein Attribut abgelegt ist, wird ein leeres HashSet zurückgegeben

getAttributeOrder

protected void getAttributeOrder(java.util.ArrayList<AttributeDescription> list,
                                 java.util.HashSet<AttributeDescription> visited)
Description copied from class: ExpressionTree
Liefert alle Attribute auf die der Baum zugreift. Dublikate werden verworfen, d.h. jedes Attribut wird nur einmal zurückgeliefert.

Overrides:
getAttributeOrder in class ExpressionTree
Parameters:
list - liste der Elemente
visited - Elemente die bereits in der Liste eingetragen wurden.
See Also:
ExpressionTree.getAttributeOrder(ArrayList, HashSet)

evaluate

public ExpressionResult evaluate(java.util.Hashtable<RealElement,BaseDataSet> realElements,
                                 java.util.Hashtable<TempAttributeDescription,TempAttribut> tempElements)
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:
evaluate 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.
Returns:
Wert, der in diesem Blatt gespeichert ist.

createLongLeaf

public static ExpressionLeaf createLongLeaf(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(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()

getFirstRealAttribute

public RealAttributeDescription getFirstRealAttribute()
Description copied from class: ExpressionTree
Liefert das erste Reale Attribut, das im Ausdruck verwendet wird.

Overrides:
getFirstRealAttribute in class ExpressionTree
Returns:
Attributbeschreibung oder null, falls kein Reales Attribut verwendet wird.
See Also:
ExpressionTree.getFirstRealAttribute()

getFirstTempAttribute

public TempAttributeDescription getFirstTempAttribute()
Description copied from class: ExpressionTree
Liefert das erste temporäre Attribut, das im Ausdruck verwendet wird.

Overrides:
getFirstTempAttribute in class ExpressionTree
Returns:
Attributbeschreibung oder null, falls kein temporäres Attribut verwendet wird.
See Also:
ExpressionTree.getFirstTempAttribute()

getDirectTempAttributes

public java.util.HashSet<TempAttributeDescription> getDirectTempAttributes()
Description copied from class: ExpressionTree
Liefert ein Set mit den temporären Attributen, die dieser Ausdruck direkt verwendet. Dazu wird der Ausdruck durchsucht und die gefundenen temporären Attribute zurückgegeben. Die gefundenen Attribute werde nicht rekursiv durchsucht.

Overrides:
getDirectTempAttributes in class ExpressionTree
Returns:
Temporäre Attribute
See Also:
ExpressionTree.getDirectTempAttributes()

getRealAttributes

public java.util.HashSet<RealAttributeDescription> getRealAttributes()
Description copied from class: ExpressionTree
Liefert alle realen Attribute die im Ausdruck verwendet werden. Es werden nur direkt referenzierte reale Attribute zurückgegeben. D.h. temporäre Attribute und deren reale Attribute werden nicht zurückgegeben.

Overrides:
getRealAttributes in class ExpressionTree
Returns:
Set mit realen Attributen.
See Also:
ExpressionTree.getRealAttributes()

equals

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

containsAttribute

public boolean containsAttribute()
Description copied from class: ExpressionTree
Überprüft ob der Ausdruck ein Attribut enthält. Es wird nach dem ersten temporären oder realen Attribut gesucht.

Overrides:
containsAttribute in class ExpressionTree
Returns:
true falls der Ausdruck ein Attribut enthält.false sonst.
See Also:
ExpressionTree.containsAttribute()

getType

public ExpressionLeaf.LeafType getType()
Returns:
Liefert den Typ des Blattes.

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.

getExpressionList

public java.util.List<ExpressionTree> getExpressionList()
Returns:
Liefert die Liste der Funktionsparameter.
See Also:
getExpressionObject()

getExpressionObject

public ExpressionInterface getExpressionObject()
Returns:
Liefert die abgelegte Funktion.
See Also:
getExpressionList()


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.