sota.gui.graph
Class CFGBuilder
java.lang.Object
sota.gui.graph.CFGBuilder
public class CFGBuilder
- extends java.lang.Object
Kapselt die Funktionalität, Kontrollflussgraphen aus (Java-)Funktionen zu
konstruieren, sowie auf diesen Graphen Operationen, wie z.B. Färben,
Tooltip-Text erstellen, auszuführen.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
edges
private static org.eclipse.draw2d.graph.EdgeList edges
listOfJumpNodes
private static java.util.ArrayList<GraphNode> listOfJumpNodes
nodes
private static org.eclipse.draw2d.graph.NodeList nodes
zoomManager
private static ZoomManager zoomManager
CFGBuilder
public CFGBuilder()
buildCFG
public static org.eclipse.draw2d.graph.DirectedGraph buildCFG(ASTFunctionNode fn,
GraphManager gcm)
- Liefert den DirectedGraph für eine Funktion.
- Parameters:
fn
- Der ASTFunctionNode, dessen Funktion modelliert werden soll.gcm
- Der verwendete GraphManager, der die Verknüpfung
GraphNode<->Node<->Widget und GraphEdge<->Edge<->Widget
speichert.
- Returns:
- Der konstruierte DirectedGraph
buildCFG
private static GraphNode buildCFG(GraphNode father,
ASTNode startNode,
ASTNode endNode)
- Rekursive Funktion zum Erstellen des Kontrollflussgraphen
- Parameters:
father
- Der GraphNode, an denen dieser Teilgraph angehängt wird.startNode
- Beginn des Quellcodeabschnittes, der den Subgraphen bildet.endNode
- Ende des Quellcodeabschnittes, der den Subgraphen bildet.
- Returns:
- Der letzte GraphNode, an welchem der Kontrollfluss beim Verlassen
des Subgraphen weitergeht. Null, wenn der Subgraph mit einem
Sprungknoten endet. Die Sprungkante wird später eingefügt.
buildFigureGraph
private static void buildFigureGraph(GraphNode rootGraphNode,
int constraint)
- Konstruiert rekursive Nodes und Edges für den DirectedGraph aus der
GraphNode-Struktur
- Parameters:
rootGraphNode
- Der aktuelle GraphNode, zu welchem Nodes und Edges konstruiert
werden sollen.constraint
- Offset zu Wichtung der geordneten Node-Platzierung.