Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

BOFA Class Reference

List of all members.

Static Public Methods

void analyze ()
void analyze (SootClassManager sootClassManager, Collection storedClasses)
void compile (String classPath, LinkedList classNames, LinkedList packageNames)
void main (String[] args)
void reset ()

Static Private Methods

void dumpFile (String outputPath)
void printUsage ()

Static Private Attributes

boolean dump = false
SootClass rootSootClass
SootMethod rootSootMethod
Collection storedClasses = null
SootClassManager sootClassManager = null
CallBackRegistry callbackReg = new CallBackRegistry()

Detailed Description

The main class of Bandera Object Flow Analysis. It needs to be used along with JJJC of Bandera to do Object Flow Analysis. It can be used independently if soot support is available. It serves as a stub for executing independent of Bandera. It can be invoked from the command prompt.

Author:
John Hatcliff , Venkatesh Prasad Ranganath
Version:
Name:
(
Revision:
1.2
)

Definition at line 74 of file BOFA.java.


Member Function Documentation

void BOFA::analyze SootClassManager   sootClassManager,
Collection   storedClasses
[inline, static]
 

Analyzes the loaded classes.

This interface can be used analyze a set of classes which are "jimplified" using soot directly.

Parameters:
sootClassManager   the class manager managing the classes to be analyzed.
storedClasses   a collection of compiled classes(SootClass) provided for analysis.
See also:
analyze() analyze

Definition at line 209 of file BOFA.java.

void BOFA::analyze   [inline, static]
 

Analyzes the classes that are available through JJJC.

It is assumed that the sootClassManager and the storedClasses has been initialized by a prior call to compile or analyze(SootClassManager, Collection was called. If that is not the case, the available classes from the edu.ksu.cis.bandera.jjjc.CompilationManager are used to analyze.

Exceptions:
ClassesNotCompiledException   if there are no compiled classes to be analyzed.
See also:
analyze(SootClassManager, Collection) analyze , compile compile

Definition at line 154 of file BOFA.java.

Referenced by analyze(), and main().

void BOFA::compile String   classPath,
LinkedList   classNames,
LinkedList   packageNames
[inline, static]
 

Compiles the given java classes using JJJC.

Parameters:
classPath   the classpath required to compile java files.
classNames   the names of the Java files which need to be compiled.
packageNames   the names of the packages needed during compilation.

Definition at line 223 of file BOFA.java.

Referenced by main().

void BOFA::dumpFile String   outputPath [inline, static, private]
 

Outputs the Jimple representation of all classes available through the class manager.

Parameters:
outputPath   the location where the jimple representation should be written.
Exceptions:
RuntimeException   if the jimple files could not be created or written.

Definition at line 272 of file BOFA.java.

Referenced by main().

void BOFA::main String   args[] [inline, static]
 

Entry point to BOFA in stand alone mode.

Currently nothing is displayed after the analysis. It provides an assurance of whether the analysis went along fine or failed.

Parameters:
args   is the command line arguments.

Definition at line 301 of file BOFA.java.

void BOFA::printUsage   [inline, static, private]
 

Safe exit in case of wrong usage in command line mode.

Definition at line 367 of file BOFA.java.

Referenced by main().

void BOFA::reset   [inline, static]
 

Resets the complete Analysis engine. All collected data are destroyed.

Definition at line 379 of file BOFA.java.


Member Data Documentation

CallBackRegistry BOFA::callbackReg = new CallBackRegistry() [static, private]
 

Central registry of callbacks. Such callbacks are used to alter the flow graph.

One possible way is to add callbacks to hook the run method as a result of start method call. This relation is not evident in the Java source code but rather in the native code.

Definition at line 119 of file BOFA.java.

boolean BOFA::dump = false [static, private]
 

Indicates whether the Jimple files of the analyzed class should be dumped or not.

Definition at line 81 of file BOFA.java.

SootClass BOFA::rootSootClass [static, private]
 

Class in the code from where the analysis will commence.

Definition at line 87 of file BOFA.java.

SootMethod BOFA::rootSootMethod [static, private]
 

Method in the rootSootClass from where the analysis will commence.

Definition at line 93 of file BOFA.java.

SootClassManager BOFA::sootClassManager = null [static, private]
 

SootClassManager object managing the classes to be analyzed.

Definition at line 108 of file BOFA.java.

Collection BOFA::storedClasses = null [static, private]
 

Collection of classes to be analyzed.

This should include all classes which can be reached from the given classes.

Definition at line 102 of file BOFA.java.


The documentation for this class was generated from the following file:
Generated at Thu Feb 7 07:05:28 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001