initializeTriggerables method

Set<Triggerable> initializeTriggerables(
  1. FormInstance mainInstance,
  2. EvaluationContext ec,
  3. TreeReference rootRef, [
  4. Set<Triggerable> alreadyEvaluated = const {},
])

Evaluates every triggerable with a target at or under rootRef (and what they cascade to); returns the evaluated triggerables.

Implementation

Set<Triggerable> initializeTriggerables(
  FormInstance mainInstance,
  EvaluationContext ec,
  TreeReference rootRef, [
  Set<Triggerable> alreadyEvaluated = const {},
]) {
  final genericRoot = rootRef.genericize();
  final applicable = <Triggerable>{
    for (final triggerable in _dag)
      if (triggerable.targets.any(genericRoot.isAncestorOf)) triggerable,
  };
  return _evaluate(
    mainInstance,
    ec,
    _allToTrigger(applicable),
    rootRef,
    const {},
    alreadyEvaluated,
  );
}