Edge

data class Edge(val sourceId: String, val targetId: String, val kind: EdgeKind = EdgeKind.DATA_FLOW, val label: String? = null, val waypoints: List<Waypoint> = emptyList(), val cascadingFault: Boolean? = null, val symbolicallyReachable: Boolean? = null, val segmentIds: List<String> = emptyList(), val segmentEdgeIds: List<String> = emptyList(), val sourceInstructionIds: List<String> = emptyList(), val sourceEndpointSymbols: List<String> = emptyList(), val sinkInstructionIds: List<String> = emptyList(), val factIds: List<String> = emptyList(), val evidenceComponentIds: List<String> = emptyList(), val solverExecutionIds: List<String> = emptyList(), val endpointEdgeProvenance: List<EndpointEdgeProvenance> = emptyList(), val icfgKind: IcfgEdgeKind? = null)

A directed edge between two views in a Vista.

Endpoints are referenced by their com.stigway.metamodels.highway.MetamodelEntity.id — the auto-computed canonical identifier — so an edge is just two strings plus overlay metadata. The vista's lookup table resolves each id to the actual view at render time.

Edge categories

  • DATA_FLOW — value passes from sourceId to targetId (a store, a function call's argument-binding, a return value).

  • CONTROL_FLOW — sequential or branching execution flow.

  • COMPOSITION — structural containment (one element decomposes into another). Rendered as a compound-parent relationship by the cytoscape exporter rather than as a visible edge.

Cascading-fault / reachability flags

Same semantics as on the view types: cascadingFault means the data-flow pass reported a cascading-fault path along this edge; symbolicallyReachable means Z3 confirmed the edge can actually be traversed. Null = not computed.

Constructors

Link copied to clipboard
constructor(sourceId: String, targetId: String, kind: EdgeKind = EdgeKind.DATA_FLOW, label: String? = null, waypoints: List<Waypoint> = emptyList(), cascadingFault: Boolean? = null, symbolicallyReachable: Boolean? = null, segmentIds: List<String> = emptyList(), segmentEdgeIds: List<String> = emptyList(), sourceInstructionIds: List<String> = emptyList(), sourceEndpointSymbols: List<String> = emptyList(), sinkInstructionIds: List<String> = emptyList(), factIds: List<String> = emptyList(), evidenceComponentIds: List<String> = emptyList(), solverExecutionIds: List<String> = emptyList(), endpointEdgeProvenance: List<EndpointEdgeProvenance> = emptyList(), icfgKind: IcfgEdgeKind? = null)

Properties

Link copied to clipboard
Link copied to clipboard

Physical endpoint edges represented after logical endpoint call sites are collapsed. P7 uses this to accept quotient-only cycles while still rejecting cycles already present in the physical endpoint projection.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The analyzer's ICFG edge kind (call / return / branch-true / branch-false / switch-case / fallthrough), preserved from the analysis JSON so the control-flow activity diagram can distinguish branch flow from calls. Null for non-ICFG edges (data-flow, composition).

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Analyzer sinks[].dataFlowDAG.edges[].id values represented by this edge. Empty when the edge does not directly represent analyzer segment-DAG edges, including control-flow edges and projected/summarized edges.

Link copied to clipboard

Data-flow DAG segments represented by this edge. For an inter-segment data-flow edge this carries the adjacent segment pair. Empty for control-flow edges.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Source/sink/fact provenance retained by compacted data-flow edges.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Generated with STIG