public final class CallSiteRef extends Object
routine-summary-scc-design.md §2.2/§2.3): one call site
observed inside a summarized routine body, carrying the LOCAL actual-binding
information the RoutineCallBinder and the SHADOW composition step
need — while staying strictly binding-independent (nothing here references
the callee; resolution happens later against the analysis-wide catalog).
Two coordinate systems meet here and are deliberately kept apart:
CallSiteRef.Actual).getInSourcesFdd()/getInSourcesFdr()); for an OUT actual,
which caller boundary endpoints its value reaches downstream
(getOutTargetsFdd()/getOutTargetsFdr()). Locals are
quotiented out of the summary itself, so this per-call-site reach is
exactly the information composition would otherwise lose.| Modifier and Type | Class and Description |
|---|---|
static class |
CallSiteRef.Actual
One actual argument at the call site (AST-side view).
|
| Constructor and Description |
|---|
CallSiteRef(RoutineSummary.RawCallSite raw,
TCustomSqlStatement callStatement,
List<CallSiteRef.Actual> actuals,
List<RoutineSummaryEdge.Endpoint> insertTargets,
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> inSourcesFdd,
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> inSourcesFdr,
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> outTargetsFdd,
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> outTargetsFdr) |
| Modifier and Type | Method and Description |
|---|---|
List<CallSiteRef.Actual> |
getActuals() |
TCustomSqlStatement |
getCallStatement()
The call statement from the extractor's slice parse (run-scoped AST).
|
Map<Integer,Set<String>> |
getInNodes() |
List<TObjectName> |
getInsertColumnNames() |
List<RoutineSummaryEdge.Endpoint> |
getInsertTargets()
Positional INSERT…EXEC target columns; null when the call site is not
consumed by an INSERT (or the INSERT has no explicit column list —
the binder reports that case as PARTIAL, never guesses ordinals).
|
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> |
getInSourcesFdd()
Actual position → caller boundary endpoints feeding it via fdd-only paths.
|
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> |
getInSourcesFdr()
Actual position → caller boundary endpoints feeding it via fdr-bearing paths.
|
Map<Integer,Map<String,Integer>> |
getOutReachNodes() |
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> |
getOutTargetsFdd()
Actual position → caller boundary endpoints its value reaches via fdd-only paths.
|
Map<Integer,Set<RoutineSummaryEdge.Endpoint>> |
getOutTargetsFdr()
Actual position → caller boundary endpoints its value reaches via fdr-bearing paths.
|
RoutineSummary.RawCallSite |
getRaw() |
TObjectName |
getReturnStatusTarget() |
boolean |
isInsertWithoutColumnList() |
String |
toString() |
public CallSiteRef(RoutineSummary.RawCallSite raw, TCustomSqlStatement callStatement, List<CallSiteRef.Actual> actuals, List<RoutineSummaryEdge.Endpoint> insertTargets, Map<Integer,Set<RoutineSummaryEdge.Endpoint>> inSourcesFdd, Map<Integer,Set<RoutineSummaryEdge.Endpoint>> inSourcesFdr, Map<Integer,Set<RoutineSummaryEdge.Endpoint>> outTargetsFdd, Map<Integer,Set<RoutineSummaryEdge.Endpoint>> outTargetsFdr)
public RoutineSummary.RawCallSite getRaw()
public TCustomSqlStatement getCallStatement()
public List<CallSiteRef.Actual> getActuals()
public List<RoutineSummaryEdge.Endpoint> getInsertTargets()
public Map<Integer,Set<RoutineSummaryEdge.Endpoint>> getInSourcesFdd()
public Map<Integer,Set<RoutineSummaryEdge.Endpoint>> getInSourcesFdr()
public Map<Integer,Set<RoutineSummaryEdge.Endpoint>> getOutTargetsFdd()
public Map<Integer,Set<RoutineSummaryEdge.Endpoint>> getOutTargetsFdr()
public List<TObjectName> getInsertColumnNames()
public boolean isInsertWithoutColumnList()
public TObjectName getReturnStatusTarget()
public Map<Integer,Set<String>> getInNodes()