Conditions
Définition
Une condition est un test logique exécuté par la machine qui se répond par un booléen. Une condition est portée par une transition. Elle agit comme un middleware avant d'appeler la childQuestion référencée dans la transition.
Détails
Une condition peut appeler une autre condition et ainsi former une chaîne de conditions. Une chaîne de conditions est toujours cumulative (logique du AND).
Une transition ne peut s'exécuter que si la condition ou la chaîne de conditions retourne true.
Représentation en base de données
Structure d'une condition:
- id: (int) identifiant unique de la condition
- operator: (enum['equals','greaterThan','lessThan','greaterOrEqualsTo','lessOrEqualsTo','is','isNot']) il s'agit de l'opération portée par la condition
- expectedValue: (string) il s'agit de la valeur contre laquelle vérifier la variable contre l'operator – il peut s'agir d'un nombre ou d'un booléen (il n'est pas prévu de comparaison de string ni d'expression régulière pour le moment).
Relations des conditions:
- conditions: une condition peut appeler une autre condition en tant que
nextConditionafin de former une chaîne de conditions. Une condition peut appeler 0 à 1 autres conditions. Une condition peut être appelée par une autre condition 0 à N fois. - possibleAnswer: une condition référence 1 et 1 seule réponse possible (la condition définit QUELLE réponse tester ; l'évaluation vérifie la réponse donnée dans une instance spécifique) – une réponse possible peut apparaître 0 à N fois dans les conditions.
- transitions: une condition peut être portée par 0 à N transitions (une condition peut s'appeler elle-même, d'où le 0 – et peut être réutilisée dans le cas des multiples) – une transition peut faire référence de 0 à 1 conditions