chord.project.analyses
Class DlogAnalysis

java.lang.Object
  extended by chord.project.analyses.JavaAnalysis
      extended by chord.project.analyses.DlogAnalysis
All Implemented Interfaces:
ITask

public class DlogAnalysis
extends JavaAnalysis

Generic implementation of a Dlog task (a program analysis expressed in Datalog and solved using BDD-based solver bddbddb).

Author:
Mayur Naik (mhn@cs.stanford.edu)

Field Summary
 
Fields inherited from class chord.project.analyses.JavaAnalysis
consumes, controls, name, produces
 
Constructor Summary
DlogAnalysis()
           
 
Method Summary
 java.util.Map<java.lang.String,RelSign> getConsumedRels()
          Provides the names and signatures of all relations consumed by this Datalog analysis.
 java.lang.String getDlogName()
          Provides the name of this Datalog analysis.
 java.util.Set<java.lang.String> getDomNames()
          Provides the names of all domains of relations consumed/produced by this Datalog analysis.
 java.lang.String getFileName()
          Provides the file containing this Datalog analysis.
 java.util.Map<java.lang.String,RelSign> getProducedRels()
          Provides the names and signatures of all relations produced by this Datalog analysis.
 boolean parse(java.lang.String fileName)
          Parses the Datalog analysis in the specified file.
 void run()
          Executes this Datalog analysis.
 void run(java.lang.Object ctrl, IStepCollection sc)
          Executes this analysis in a "modern" project.
 
Methods inherited from class chord.project.analyses.JavaAnalysis
getName, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DlogAnalysis

public DlogAnalysis()
Method Detail

getDlogName

public java.lang.String getDlogName()
Provides the name of this Datalog analysis. It is specified via a line of the form "# name=..." in the file containing the analysis.

Returns:
The name of this Datalog analysis.

getFileName

public java.lang.String getFileName()
Provides the file containing this Datalog analysis.

Returns:
The file containing this Datalog analysis.

parse

public boolean parse(java.lang.String fileName)
Parses the Datalog analysis in the specified file.

Parameters:
fileName - A file containing a Datalog analysis.
Returns:
true iff the Datalog analysis parses successfully.

run

public void run()
Executes this Datalog analysis.

Specified by:
run in interface ITask
Overrides:
run in class JavaAnalysis

run

public void run(java.lang.Object ctrl,
                IStepCollection sc)
Description copied from interface: ITask
Executes this analysis in a "modern" project. This method must usually not be called directly.

Specified by:
run in interface ITask
Overrides:
run in class JavaAnalysis

getDomNames

public java.util.Set<java.lang.String> getDomNames()
Provides the names of all domains of relations consumed/produced by this Datalog analysis.

Returns:
The names of all domains of relations consumed/produced by this Datalog analysis.

getConsumedRels

public java.util.Map<java.lang.String,RelSign> getConsumedRels()
Provides the names and signatures of all relations consumed by this Datalog analysis.

Returns:
The names and signatures of all relations consumed by this Datalog analysis.

getProducedRels

public java.util.Map<java.lang.String,RelSign> getProducedRels()
Provides the names and signatures of all relations produced by this Datalog analysis.

Returns:
The names and signatures of all relations produced by this Datalog analysis.