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 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

      static @NonNull CallGraphConfigBuilder builder()
      Starts a new, family-agnostic CallGraphConfig builder.