handleSplitJoinNode method

void handleSplitJoinNode(
  1. NodeOutput item,
  2. State state,
  3. TraverseQueue levelQueue
)

Implementation

void handleSplitJoinNode(
    NodeOutput item, State state, TraverseQueue levelQueue) {
  var queue = state.queue, mtx = state.mtx;
  if (joinHasUnresolvedIncomes(item)) {
    queue.push(item);
    return;
  }
  resolveCurrentJoinIncomes(mtx, item);
  bool isInserted = processOrSkipNodeOnMatrix(item, state);
  if (isInserted) {
    final initialY = state.y;
    insertJoinIncomes(item, state, levelQueue, false);
    state.y = initialY;
    insertSplitOutcomes(item, state, levelQueue);
  }
}