We have unresolvable conflicts if we do initialization and check requirement fulfillment in the same phase. For example, FixedEvaluations requires the Evaluations inserted by the Evaluator (so condition needs to be initialized after the components in Loop), and the Change<Progress> trigger needs the Progress inserted by FixedEvaluations/FixedIterations (so the logger component needs to be initialized after the condition in Loop).
I think a separate initialize and require method in Component is cleaner anyway.
We have unresolvable conflicts if we do initialization and check requirement fulfillment in the same phase. For example,
FixedEvaluations
requires theEvaluations
inserted by theEvaluator
(so condition needs to be initialized after the components inLoop
), and theChange<Progress>
trigger needs theProgress
inserted byFixedEvaluations
/FixedIterations
(so the logger component needs to be initialized after the condition inLoop
).I think a separate
initialize
andrequire
method inComponent
is cleaner anyway.