validate method
Re-answers every relevant question with its current answer (running
required and constraint checks); the first failure, or null when
the form is valid. Port of FormDef.validate /
TriggerableDag.validate.
Implementation
ValidateOutcome? validate({bool markCompleted = true}) {
final controller = FormEntryController(FormEntryModel(this))
..jumpToIndex(FormIndex.beginningOfForm());
FormEntryEvent event;
while ((event = controller.stepToNextEvent()) != FormEntryEvent.endOfForm) {
if (event != FormEntryEvent.question) continue;
final index = controller.model.formIndex;
final status = controller.answerQuestion(
controller.model.questionPrompt().answerValue,
index: index,
);
if (markCompleted && status != AnswerStatus.ok) {
return ValidateOutcome(index, status);
}
}
return null;
}