static Tuple<Collection<ExecutionLineageNode>, Collection<ChannelInstance>> modelEagerExecution(
ChannelInstance[] inputs,
ChannelInstance[] outputs,
OptimizationContext.OperatorContext operatorContext) {
final ExecutionLineageNode executionLineageNode = new ExecutionLineageNode(operatorContext);
executionLineageNode.addAtomicExecutionFromOperatorContext();
LazyExecutionLineageNode.connectAll(inputs, executionLineageNode, outputs);
final Tuple<Collection<ExecutionLineageNode>, Collection<ChannelInstance>> collectors;
if (outputs.length == 0) {
collectors = executionLineageNode.collectAndMark();
} else {
collectors = new Tuple<>(new LinkedList<>(), new LinkedList<>());
for (ChannelInstance output : outputs) {
output.getLineage().collectAndMark(collectors.getField0(), collectors.getField1());
}
}
return collectors;
}