GraphExecutor
Запускает модель графа без виджетов, переходя по потоковым связям и вычисляя входы по требованию.
Обзор
Зарегистрируйте NodeBehavior для каждого исполняемого типа узла, затем вызовите fire(model, startNodeId) на узле-событии. Чистые поведения вычисляют значения по запросу; исполняемые идут по потоковым связям и могут продолжаться по одному или нескольким выходам. Если граф редактируется пользователем, сначала выполните проверку. Настраиваемый лимит шагов останавливает бесконечный потоковый цикл.
Регистрация поведений и запуск графа
GraphExecutor executor = new GraphExecutor()
.register("event.start", NodeBehavior.exec(context -> context.continueWith("next")))
.register("value.add", NodeBehavior.pure(context ->
context.output("sum", context.number("left") + context.number("right"))));
GraphResult result = executor.fire(graph.model(), "start");