|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsota.ast.util.ASTManager
public class ASTManager
Verwaltet das Projekt und bietet Zugriff auf die wichtigsten UseCases; ist damit zentrale Klasse zur Verwaltung und
Manipulation des gesamten AST.
Biete Zugriff auf folgende UseCases:
- Erstellung des AST über einen ASTBuilder
- statische Analyse des Quellcodes
- Instrumentation des Quellcodes
- Programmkompilation und -ausführung
- Einlesen der Logdateien, inkl. Verarbeitung der Testdaten
- Applikation der Überdeckungsdaten auf den AST und Berechnung der Überdeckungsmaße
- Erstellung einer Reportdatei
Verwaltet:
- die Projektkonfiguration
- alle Daten des Abstrakten Syntaxbaum
- die Testdaten
- die Listener des Projekts
Nested Class Summary | |
---|---|
class |
ASTManager.ASTLogReader
Klasse zum Einlesen von Logdateien als Thread mit ProgressMonitor. |
class |
ASTManager.FileParser
Führt das Parsen des Projektes als Thread mit Progressmonitor durch. |
Field Summary | |
---|---|
private java.util.Vector<sota.lang.java.ast.util.ProjectChangeListener> |
changeListeners
|
private sota.ast.util.ProjectConfig |
config
|
private sota.ast.nodes.FileNode |
currFileNode
|
private boolean[] |
flag
|
private java.util.Vector<sota.lang.java.ast.util.GuiUpdateListener> |
guiUpdateListeners
|
private java.util.List<sota.ast.nodes.ASTNode> |
listOfNodes
|
private java.util.Vector<sota.gui.provider.IProjectTreeView> |
projectTreeViews
|
private java.util.TreeSet<sota.ast.nodes.ASTClassNode> |
setOfClassNodes
|
private java.util.TreeSet<sota.ast.nodes.FileNode> |
setOfFileNodes
|
private java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> |
setOfFunctionNodes
|
private java.util.TreeSet<sota.ast.nodes.ASTClassNode> |
setOfTopLevelClassNodes
|
private java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> |
setOfTopLevelFunctionNodes
|
private boolean |
VERBOSE
|
Constructor Summary | |
---|---|
ASTManager()
Der Konstruktor, der einene ASTManager mit einer neuen Konfiguration erstellt. |
|
ASTManager(sota.ast.util.ProjectConfig c)
Der Konstruktor, der den ASTManager anhand einer Konfiguration erstellt. |
Method Summary | |
---|---|
sota.ast.util.ProjectConfig |
addFile(java.lang.String s)
Fügt eine Datei in das Projekt hinzu. |
void |
addFileNode(sota.ast.nodes.FileNode fn)
Fügt einen neuen Fileknoten in den AST ein. |
void |
addGuiUpdateListener(sota.lang.java.ast.util.GuiUpdateListener listener)
Fügt einen GuiUpdateListener hinzu. |
void |
addInstrumentationScheme(sota.ast.util.IScheme scheme)
Fügt ein IScheme zu dem Projekt hinzu. |
void |
addProjectChangeListener(sota.lang.java.ast.util.ProjectChangeListener listener)
Fügt einen ProjectChangeListener hinzu. |
void |
addProjectTreeView(sota.gui.provider.IProjectTreeView view)
Fügt eine ProjectTreeView hinzu. |
void |
append(sota.ast.nodes.ASTNode n)
Fügt einen neuen Knoten in den AST ein |
void |
applyTestCase(sota.ast.util.TestCase t)
Appliziert einen Testfall auf den AST und ermöglicht dessen Auswertung. |
boolean |
backupFile(java.lang.String fileName)
Sichert eine Quelldatei. |
boolean |
backupProject()
Sichert die Quelldateien des Projektes. |
org.eclipse.draw2d.graph.DirectedGraph |
buildCFG(sota.ast.nodes.ASTFunctionNode fn,
sota.gui.graph.GraphManager gcm)
Konstruiert den Kontrollflussgraphen für eine Funktion. |
boolean |
checkSourceStatus()
Testet den Quellcodestatus des Projektes. |
boolean |
compileProject(java.lang.String antBuildFile)
Startet die Kompilation des Projektes anhand eines Ant-Buildfiles, ohne Progressmonitor (vgl. |
void |
computeCoverage()
Berechnet die Überdeckungsmaße für die applizierten Testfälle. |
void |
fireToGuiUpdateListeners()
Ruft an allen GuiUpdateListener die Funktion guiUpdate(this) auf. |
void |
fireToProjectChangeListeners()
Ruft für alle ProjectChangeListener die Funktion projectChanged(this) auf. |
java.util.List<sota.ast.nodes.ASTNode> |
getAllNodes()
Gibt alle Knoten in einer Liste zurück. |
java.util.TreeSet<sota.ast.nodes.ASTClassNode> |
getClassNodes()
Gibt TreeSet aller Klassenknoten zurück. |
sota.ast.util.ProjectConfig |
getConfiguration()
Gibt die aktuelle Konfiguration zurück. |
java.util.TreeSet<sota.ast.nodes.FileNode> |
getFileNodes()
Gibt das TreeSet aller Dateiknoten zurück. |
java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> |
getFunctionNodes()
Gibt TreeSet aller Funktionsknoten zurück. |
sota.ast.nodes.ASTNode |
getLastNode()
Gibt den letzten Knoten zurück. |
sota.ast.nodes.ASTNode |
getNodeByID(int id)
Gibt Knoten nach ID zurück. |
int |
getParsedSourceStatus()
Gibt den Status der geparsten Quelldateien zurück. |
sota.ast.util.Metrics |
getProjectMetrics()
Gibt die Metrik-Daten des Projektes zurück. |
int |
getProjectStatus()
Gibt den akutellen Projektstatus zurück. |
int |
getSourceStatus()
Gibt den Status der Quelldateien zurück. |
java.util.TreeSet<sota.ast.nodes.ASTClassNode> |
getTopLevelClassNodes()
Gibt TreeSet aller Top-Level-Klassenknoten zurück. |
java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> |
getTopLevelFunctionNodes()
Gibt TreeSet aller Top-Level-Funktionsknoten zurück |
boolean |
instrumentProject()
Instrumentiert das Projekt nach aktueller Konfiguration. |
static boolean |
isInstrumented(java.lang.String file)
Teste, ob diese Datei schon instrumentiert ist. |
boolean |
openProject(java.lang.String file,
boolean recover)
Öffnet das Projekt anhand einer XML-Datei ohne ProgressMonitor (SOTA-ATM). |
boolean |
openProject(java.lang.String file,
org.eclipse.ui.IWorkbenchWindow workbenchWindow,
boolean recover)
Öffnet ein Projekt mit einem ProgressMonitor (GUI). |
boolean |
openProjectConfiguration(java.lang.String file)
Liest die Konfiguration des Projektes ein. |
boolean |
parseProject()
Parst das Projekt ohne Progressmonitor |
boolean |
parseProject(org.eclipse.ui.IWorkbenchWindow window)
Startet das Parsen des Projektes mit einem ProgressMonitor. |
void |
print()
Ausgabe der geparsten Dateien |
void |
printCFG()
Ausgabe der Kontrollflussgraphen des AST. |
void |
printConditions()
Ausgabe der Bedingungen. |
void |
printFunctions()
Ausgabe der aller Funktionen im AST. |
void |
printNodes()
Ausgabe aller Knoten des AST mit Informationen. |
boolean |
readLanguageSpecs()
Liest die Sprachspezifikation der unterstützten Programmiersprachen für SOTA ein. |
boolean |
readLog(java.util.TreeSet<java.lang.String> set)
Liest Logfiles mit einem ProgressMonitor ein und verarbeitet diese (SOTA-ATM). |
boolean |
readLog(java.util.TreeSet<java.lang.String> set,
org.eclipse.ui.IWorkbenchWindow window)
Liest Logfiles mit einem ProgressMonitor ein und verarbeitet diese (GUI). |
void |
reinit()
Initialisier den ASTManager neu. |
void |
reinit(sota.ast.util.ProjectConfig c)
Initialisiert den ASTManager anhand einer Konfiguration neu. |
void |
removeFileNode(sota.ast.nodes.FileNode fn)
|
void |
removeGuiUpdateListener(sota.lang.java.ast.util.GuiUpdateListener listener)
Entfernt einen GuiUpdateListener. |
void |
removeProjectChangeListener(sota.lang.java.ast.util.ProjectChangeListener listener)
Entfernt einen ProjectChangeListener. |
void |
removeProjectTreeView(sota.gui.provider.IProjectTreeView view)
Entfernt eine ProjectTreeView. |
void |
resetHits()
Setzt alle applizierten Testdaten zurück. |
boolean |
restoreFile(java.lang.String fileName)
Stellt eine originale Quelldatei wieder her. |
boolean |
restoreProject()
Stellt die originalen Quelldateien des Projekts wieder her. |
boolean |
runProject(java.lang.String runScript)
Startet das Projekt anhand eines Startskripts, ohne Progressmonitor (vgl. |
boolean |
saveProject()
Speichert das Projekt in einer XML-Datei. |
void |
select(java.lang.Object o)
Wählt an allen ProjectTreeViwes ein Objekt aus und aktualisiert die Darstellung. |
boolean |
showCoverage()
Liefert die Information, ob die Überdeckung farblich angezeigt werden soll. |
void |
showCoverage(boolean b)
Legt fest, ob die Überdeckung in den Views farblich hervorgehoben werden soll. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.util.Vector<sota.lang.java.ast.util.ProjectChangeListener> changeListeners
private sota.ast.util.ProjectConfig config
private sota.ast.nodes.FileNode currFileNode
private boolean[] flag
private java.util.Vector<sota.lang.java.ast.util.GuiUpdateListener> guiUpdateListeners
private java.util.List<sota.ast.nodes.ASTNode> listOfNodes
private java.util.Vector<sota.gui.provider.IProjectTreeView> projectTreeViews
private java.util.TreeSet<sota.ast.nodes.ASTClassNode> setOfClassNodes
private java.util.TreeSet<sota.ast.nodes.FileNode> setOfFileNodes
private java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> setOfFunctionNodes
private java.util.TreeSet<sota.ast.nodes.ASTClassNode> setOfTopLevelClassNodes
private java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> setOfTopLevelFunctionNodes
private boolean VERBOSE
Constructor Detail |
---|
public ASTManager()
public ASTManager(sota.ast.util.ProjectConfig c)
c
- die KonfigurationMethod Detail |
---|
public sota.ast.util.ProjectConfig addFile(java.lang.String s)
s
- die Datei samt Pfad
public void addFileNode(sota.ast.nodes.FileNode fn)
fn
- der FileNodepublic void addGuiUpdateListener(sota.lang.java.ast.util.GuiUpdateListener listener)
listener
- der Listenerpublic void addInstrumentationScheme(sota.ast.util.IScheme scheme)
scheme
- das ISchemepublic void addProjectChangeListener(sota.lang.java.ast.util.ProjectChangeListener listener)
listener
- der Listenerpublic void addProjectTreeView(sota.gui.provider.IProjectTreeView view)
view
- die Viewpublic void append(sota.ast.nodes.ASTNode n)
n
- der ASTNodepublic void applyTestCase(sota.ast.util.TestCase t)
t
- der Testfallpublic boolean backupFile(java.lang.String fileName)
fileName
- die Datei
public boolean backupProject()
public org.eclipse.draw2d.graph.DirectedGraph buildCFG(sota.ast.nodes.ASTFunctionNode fn, sota.gui.graph.GraphManager gcm)
fn
- der Funktionsknotengcm
- der Graphmanager der CFGView
public boolean checkSourceStatus()
public boolean compileProject(java.lang.String antBuildFile)
antBuildFile
- das Ant-BuildFile
public void computeCoverage()
public void fireToGuiUpdateListeners()
public void fireToProjectChangeListeners()
public java.util.List<sota.ast.nodes.ASTNode> getAllNodes()
public java.util.TreeSet<sota.ast.nodes.ASTClassNode> getClassNodes()
public sota.ast.util.ProjectConfig getConfiguration()
public java.util.TreeSet<sota.ast.nodes.FileNode> getFileNodes()
public java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> getFunctionNodes()
public sota.ast.nodes.ASTNode getLastNode()
public sota.ast.nodes.ASTNode getNodeByID(int id)
id
- die ID
public int getParsedSourceStatus()
public sota.ast.util.Metrics getProjectMetrics()
public int getProjectStatus()
public int getSourceStatus()
public java.util.TreeSet<sota.ast.nodes.ASTClassNode> getTopLevelClassNodes()
public java.util.TreeSet<sota.ast.nodes.ASTFunctionNode> getTopLevelFunctionNodes()
public boolean instrumentProject()
public static boolean isInstrumented(java.lang.String file)
file
- die Datei
public boolean openProject(java.lang.String file, boolean recover)
file
- die XML-Projektdateirecover
- ob die originalen Quelldateien wiederhergestellt werden sollen
public boolean openProject(java.lang.String file, org.eclipse.ui.IWorkbenchWindow workbenchWindow, boolean recover)
file
- die ProjektdateiworkbenchWindow
- das zugehörige Windowrecover
- ob die originalen Quelldateien wiederhergestellt werden sollen
public boolean openProjectConfiguration(java.lang.String file)
file
- die XML-Projektdatei
public boolean parseProject()
public boolean parseProject(org.eclipse.ui.IWorkbenchWindow window)
window
- IWorkbenchWindow für den ProgressMonitor oder null, wenn ohne GUI gestartet (SOTA-ATM)
public void print()
public void printCFG()
public void printConditions()
public void printFunctions()
public void printNodes()
public boolean readLanguageSpecs()
public boolean readLog(java.util.TreeSet<java.lang.String> set)
set
- die Menge der Logdateien
public boolean readLog(java.util.TreeSet<java.lang.String> set, org.eclipse.ui.IWorkbenchWindow window)
set
- die Menge der Logdateienwindow
- das aktuelle Window
public void reinit()
public void reinit(sota.ast.util.ProjectConfig c)
c
- die Konfigurationpublic void removeFileNode(sota.ast.nodes.FileNode fn)
fn
- public void removeGuiUpdateListener(sota.lang.java.ast.util.GuiUpdateListener listener)
listener
- der Listenerpublic void removeProjectChangeListener(sota.lang.java.ast.util.ProjectChangeListener listener)
listener
- der Listenerpublic void removeProjectTreeView(sota.gui.provider.IProjectTreeView view)
view
- die Viewpublic void resetHits()
public boolean restoreFile(java.lang.String fileName)
fileName
- die Datei
public boolean restoreProject()
public boolean runProject(java.lang.String runScript)
runScript
- das Startskript
public boolean saveProject()
public void select(java.lang.Object o)
o
- das Objektpublic boolean showCoverage()
public void showCoverage(boolean b)
b
- true, wenn ja, sonst false
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |