Package sootup.callgraph.config
Class CommonCallGraphSettings
java.lang.Object
sootup.callgraph.config.CommonCallGraphSettings
Immutable snapshot of the properties
CallGraphConfigBuilder collects before a caller
transitions to a family-specific stage (see CallGraphConfigBuilder.cha(), CallGraphConfigBuilder.rta(), CallGraphConfigBuilder.into(java.util.function.Function<sootup.callgraph.config.CommonCallGraphSettings, B>)). Public (unlike the builder's
internal state) because family-specific builders living in other modules (e.g.
sootup.spark.SparkCallGraphConfig, qilin.callgraph.QilinCallGraphConfig) need to read
it.-
Method Summary
Modifier and TypeMethodDescription@NonNull CallResolverControls which statements' calls are resolved and expanded at all (pre-dispatch).@NonNull DynamicInvokeResolverInvokedynamic resolver to apply;DynamicInvokeResolver.bootstrapMethodHandles()if never set.@NonNull List<MethodSignature>@NonNull ReflectionModelReflection model to apply;ReflectionModel.none()if never set.@NonNull BooleangetSeedEntryPointClinits(boolean defaultValue) Whether each entry point's declaring-class<clinit>is eagerly seeded as a root before traversal starts, ornullif the caller never explicitly set it - each family stage should fall back to its own natural default in that case (seeCallGraphConfigBuilder#seedEntryPointClinitsfor why there's no single common default).@NonNull ViewgetView()@NonNull VirtualCallResolverControls which resolved dynamic-dispatch candidates - including discovered<clinit>calls - are admitted/expanded (post-dispatch).booleanWhether the caller explicitly set an invokedynamic resolver - lets families with their own invokedynamic config (Qilin'sresolveDynamicInvoke) keep it unless overridden.booleanWhether the caller explicitly set a reflection model - lets families with their own reflection config (Qilin'sreflectionLogPath) keep it unless overridden.
-
Method Details
-
getView
-
getEntryPoints
-
getCallResolver
Controls which statements' calls are resolved and expanded at all (pre-dispatch). -
getVirtualCallResolver
Controls which resolved dynamic-dispatch candidates - including discovered<clinit>calls - are admitted/expanded (post-dispatch). -
getSeedEntryPointClinits
Whether each entry point's declaring-class<clinit>is eagerly seeded as a root before traversal starts, ornullif the caller never explicitly set it - each family stage should fall back to its own natural default in that case (seeCallGraphConfigBuilder#seedEntryPointClinitsfor why there's no single common default). -
getReflectionModel
Reflection model to apply;ReflectionModel.none()if never set. -
isReflectionModelSet
public boolean isReflectionModelSet()Whether the caller explicitly set a reflection model - lets families with their own reflection config (Qilin'sreflectionLogPath) keep it unless overridden. -
getDynamicInvokeResolver
Invokedynamic resolver to apply;DynamicInvokeResolver.bootstrapMethodHandles()if never set. -
isDynamicInvokeResolverSet
public boolean isDynamicInvokeResolverSet()Whether the caller explicitly set an invokedynamic resolver - lets families with their own invokedynamic config (Qilin'sresolveDynamicInvoke) keep it unless overridden.
-