Package sootup.callgraph
Interface CallGraphConfig
- All Known Implementing Classes:
ChaCallGraphConfig,QilinCallGraphConfig,RtaCallGraphConfig,SparkCallGraphConfig
public interface CallGraphConfig
A configuration object that already carries everything needed to build a
CallGraph - the
view, entry points, algorithm choice, and algorithm-specific options - so that constructing a
call graph with any algorithm (CHA, RTA, Spark, a Qilin context-sensitivity variant) follows one
consistent shape:
CallGraph cg = CallGraphConfig.builder()
.view(view)
.entryPoints(List.of(mainSig))
.cha()
.build()
.computeCallGraph();
The builder (CallGraphConfigBuilder) collects properties shared across every family
(view, entry points, <clinit>/dispatch scoping via
sootup.callgraph.scope.CallResolver/VirtualCallResolver), then transitions to a
family-specific stage: .cha()/.rta() directly (both live in this module), or
.into(SparkCallGraphConfig::from)/.into(QilinCallGraphConfig::from) for the
sootup.spark/sootup.qilin modules, which this module cannot depend on. Each
family-specific builder ends in .build(), producing a CallGraphConfig.-
Method Summary
Modifier and TypeMethodDescriptionstatic @NonNull CallGraphConfigBuilderbuilder()Starts a new, family-agnosticCallGraphConfigbuilder.@NonNull CallGraphBuilds the call graph for the analysis described by this configuration object.
-
Method Details
-
computeCallGraph
@NonNull CallGraph computeCallGraph()Builds the call graph for the analysis described by this configuration object. All state needed (view, entry points, algorithm-specific options) is already captured by the concrete implementation, typically via its own builder. -
builder
Starts a new, family-agnosticCallGraphConfigbuilder.
-