public final class ShadowLeafEdgeComparator extends Object
routine-summary-scc-design.md §2.6): the canonical
LEAF-edge comparator between a LEGACY analysis and the SHADOW side model.
Comparison is over boundary→boundary leaf edges — the same reachability
projection the B2 differential proof uses — never XML equality.
Edge keys are STRUCTURED (ShadowLeafEdgeComparator.LeafEdgeKey): every identifier segment
is a CanonKey built with an EXPLICIT vendor, so equality carries the
vendor's real identifier relation (SQL Server collation included) and never
consults ambient global state; display strings are rendering only
(codex-B3-r1 finding 8).
Classification:
EQUAL — leaf edge present in both runs;INTENDED_ADDITION — SHADOW-only edge (the promotion gate
requires every one of these to match a hand-authored golden,
bidirectionally — arch-F2 / codex-r2 N4);MISSING_LEGACY_EDGE — LEGACY edge absent from SHADOW. Current
publication is observation-only and cannot remove legacy edges; the
class remains useful for evaluating a future application mode;REGRESSION — a missing legacy edge whose exact endpoints
survive in SHADOW with a FLIPPED relation flavor (fdd↔fdr): the flow
survived but its semantics changed. Checked BEFORE CHANGED_TARGET —
the more specific pairing wins (codex-B3-r1 finding 9);CHANGED_TARGET — a missing legacy edge paired with a
shadow-only edge sharing (vendor, relation type, source): the flow
moved rather than vanished. Only meaningful under replacement (B6).| Modifier and Type | Class and Description |
|---|---|
static class |
ShadowLeafEdgeComparator.Classification |
static class |
ShadowLeafEdgeComparator.ClassifiedEdge
One classified canonical leaf edge.
|
static class |
ShadowLeafEdgeComparator.LeafEdgeKey
One canonical leaf-edge key: vendor + relation type + two endpoints,
each endpoint a kind plus CanonKey'd name segments.
|
static class |
ShadowLeafEdgeComparator.Report
Comparator output: classified edges + promotion-gate view.
|
| Modifier and Type | Method and Description |
|---|---|
static Set<ShadowLeafEdgeComparator.LeafEdgeKey> |
additionKeysOf(EDbVendor vendor,
Set<ShadowSummaryApplier.ComposedEdge> additions)
Canonical keys of SHADOW additions (same construction as legacy keys).
|
static ShadowLeafEdgeComparator.Report |
compare(Set<ShadowLeafEdgeComparator.LeafEdgeKey> legacyKeys,
Set<ShadowLeafEdgeComparator.LeafEdgeKey> shadowKeys)
Classify a LEGACY leaf-edge set against the SHADOW side model
(B3 shape: SHADOW = LEGACY ∪ additions, so only EQUAL and
INTENDED_ADDITION can appear; the remaining classes guard the
comparator's reuse under B6 replacement).
|
static Set<ShadowLeafEdgeComparator.LeafEdgeKey> |
leafKeysOf(EDbVendor vendor,
dataflow df)
Canonical leaf-edge keys of an analyzed dataflow: its relation graph's
boundary→boundary reachability projection (identical machinery to the
summary extraction closure, applied to the WHOLE unit's model).
|
static Map<ShadowLeafEdgeComparator.LeafEdgeKey,Integer> |
occurrenceCountsOf(EDbVendor vendor,
Set<ShadowSummaryApplier.ComposedEdge> additions)
Leaf key → number of DISTINCT composition occurrences producing it
(caller × callee × call-site ordinal — the additions set already
carries occurrence identity).
|
public static Set<ShadowLeafEdgeComparator.LeafEdgeKey> leafKeysOf(EDbVendor vendor, dataflow df)
public static Map<ShadowLeafEdgeComparator.LeafEdgeKey,Integer> occurrenceCountsOf(EDbVendor vendor, Set<ShadowSummaryApplier.ComposedEdge> additions)
public static Set<ShadowLeafEdgeComparator.LeafEdgeKey> additionKeysOf(EDbVendor vendor, Set<ShadowSummaryApplier.ComposedEdge> additions)
public static ShadowLeafEdgeComparator.Report compare(Set<ShadowLeafEdgeComparator.LeafEdgeKey> legacyKeys, Set<ShadowLeafEdgeComparator.LeafEdgeKey> shadowKeys)