Package com.ensoftcorp.open.cg.analysis
Class ClassHierarchyAnalysis
- java.lang.Object
-
- com.ensoftcorp.open.cg.analysis.CGAnalysis
-
- com.ensoftcorp.open.cg.analysis.ClassHierarchyAnalysis
-
public class ClassHierarchyAnalysis extends CGAnalysis
This analysis builds a call graph using Class Hierarchy Analysis (CHA). In terms of precision, this is the least precise analysis compared to RTA, VTA, and 0-CFA, but is also the cheapest analysis of the available algorithms. Several other algorithms (except 0-CFA) use CHA as a starting input for their analyses. Note: Atlas already has an implementation of CHA baked-in, so its pointless to do this analysis, except for the intellectual exercise of doing so.- Author:
- Ben Holland
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CALL
static java.lang.String
LIBRARY_CALL
static java.lang.String
LIBRARY_PER_CONTROL_FLOW
static java.lang.String
PER_CONTROL_FLOW
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String[]
getCallEdgeTags()
Returns the set of tags applied to edges during call graph constructionstatic ClassHierarchyAnalysis
getInstance()
java.lang.String
getName()
java.lang.String[]
getPerControlFlowEdgeTags()
Returns the set of tags applied to per control flow edges during call graph construction-
Methods inherited from class com.ensoftcorp.open.cg.analysis.CGAnalysis
getCallGraph, getPerControlFlowGraph, hasRun, run
-
-
-
-
Field Detail
-
CALL
public static final java.lang.String CALL
- See Also:
- Constant Field Values
-
PER_CONTROL_FLOW
public static final java.lang.String PER_CONTROL_FLOW
- See Also:
- Constant Field Values
-
LIBRARY_CALL
public static final java.lang.String LIBRARY_CALL
- See Also:
- Constant Field Values
-
LIBRARY_PER_CONTROL_FLOW
public static final java.lang.String LIBRARY_PER_CONTROL_FLOW
- See Also:
- Constant Field Values
-
-
Method Detail
-
getInstance
public static ClassHierarchyAnalysis getInstance()
-
getCallEdgeTags
public java.lang.String[] getCallEdgeTags()
Description copied from class:CGAnalysis
Returns the set of tags applied to edges during call graph construction- Specified by:
getCallEdgeTags
in classCGAnalysis
- Returns:
-
getPerControlFlowEdgeTags
public java.lang.String[] getPerControlFlowEdgeTags()
Description copied from class:CGAnalysis
Returns the set of tags applied to per control flow edges during call graph construction- Specified by:
getPerControlFlowEdgeTags
in classCGAnalysis
- Returns:
-
getName
public java.lang.String getName()
- Specified by:
getName
in classCGAnalysis
-
-