evaluate method
Implementation
@override
bool? evaluate(QuestionnaireState state) {
if (expressions.isEmpty) {
return true; // No conditions means it's always true
}
// Evaluate all sub-expressions
final evaluatedResults = expressions
.map((exp) => exp.evaluate(state))
.toList();
switch (logicType) {
case LogicType.and:
if (evaluatedResults.contains(false)) return false;
return evaluatedResults.contains(null) ? null : true;
case LogicType.or:
if (evaluatedResults.contains(true)) return true;
return evaluatedResults.contains(null) ? null : false;
}
}