armature_graph library

Classes

Graph<TNodeValue extends GraphNodeValue>
DAG of GraphNodeValues with a three-state cascade state machine.
GraphNode<TValue extends GraphNodeValue>
Internal node wrapper that records the parent/child edges used for traversal. requiredParents is the subset of parents that came from GraphNodeValue.parents (as opposed to GraphNodeValue.optionalParents) — consumers can distinguish required vs optional edges when visualising the graph.
GraphNodeValue
Protocol implemented by values carried in a Graph. Defines the DAG edges (required parents and optionalParents) used for cycle detection and topological traversal.
GraphVisitor<T>
Policy + side-effect interface for a Graph cascade.

Enums

GraphNodeStatus
The three-state machine each GraphNode is tracked in.

Exceptions / Errors

GraphCycleError
Thrown at graph construction when the parent/child edges form a cycle.
GraphError
Base class for every structural / cascade failure the Graph surfaces.
GraphFixedPointError
Thrown by Graph.resolve when the cascade chain keeps regenerating new cascades past the configured drainIterationLimit. Indicates that a visitor callback is toggling targets in a cycle that never stabilises.
GraphNodeNotFoundError
Thrown at graph construction when a node's declared parent (required or optional) is not present in the nodeValues list passed to Graph.