Package soot.jimple.toolkits.annotation.purity

Interface Summary
PurityNode Interface shared by all kinds of nodes in a PurityGraph.
SootMethodFilter Allows specifing which SootMethod you want to analyse in a AbstractInterproceduralAnalysis.

Class Summary
AbstractInterproceduralAnalysis Inter-procedural iterator skeleton for summary-based analysis A "summary" is an abstract element associated to each method that fully models the effect of calling the method.
DirectedCallGraph Builds a DirectedGraph from a CallGraph and SootMethodFilter.
PurityAnalysis TODO: - test, test, and test (and correct the potentially infinite bugs) - optimise PurityGraph, especially methodCall) - find a better abstraction for exceptions (throw & catch) - output nicer graphs (especially clusters!)
PurityEdge An edge in a purity graph.
PurityGlobalNode The GBL node.
PurityGraph Modifications with respect to the article: - "unanalizable call" are treated by first constructing a conservative calee graph where all parameters escape globally and return points to the global node, and then applying the standard analysable call construction - unanalysable calls add a mutation on the global node; the "field" is named "outside-world" and models the mutation of any static field, but also side-effects by native methods, such as I/O, that make methods impure (see below).
PurityGraphBox Simple box class that encapsulates a reference to a PurityGraph.
PurityIntraproceduralAnalysis Intra-procedural purity-graph analysis.
PurityMethodNode Kind of Stmt inside node, but global to the method.
PurityParamNode A node representing a method parameter.
PurityStmtNode A node created dynamically and attached to a statement Stmt.
PurityThisNode A node representing the this parameter.