Classe StructureSwitch
Description Générale
La classe StructureSwitch représente une structure de contrôle conditionnelle de type switch dans l'éditeur graphique d'AlgoForge. Elle permet de gérer une expression à tester et des branches conditionnelles associées. Cette classe hérite de StructureAlternative et ajoute des fonctionnalités spécifiques pour gérer l'expression à tester, détecter des anomalies, et exporter les données.
Héritage
- Classe parente :
StructureAlternative- La classe
StructureSwitchhérite de toutes les fonctionnalités de base deStructureAlternative, notamment la gestion des conditions, des enfants, et des interactions utilisateur.
- La classe
Responsabilités Principales
1. Gestion de l'Expression à Tester
-
Expression à tester :
- Propriété
_expressionATester: Contient l'expression utilisée dans leswitch. - Propriété
_ancienneExpressionATester: Stocke l'expression précédente pour permettre l'annulation/rétablissement des modifications. - Méthodes associées :
get expressionATester(): Renvoie l'expression actuelle.set expressionATester(value): Définit une nouvelle expression à tester.
- Propriété
-
Modification de l'expression :
- L'expression est modifiable directement via une zone de texte éditable dans l'interface utilisateur.
- Méthode
afficher():- Ajoute un champ interactif pour modifier l'expression.
- Enregistre les modifications via un événement
focusout.
2. Gestion des Conditions
-
Liste des conditions :
- Propriété
_listeConditions: Contient les conditions associées à la structureSwitch. - Méthodes héritées de
StructureAlternative:ajouterCondition(): Ajoute une nouvelle condition.supprimerCondition(): Supprime une condition spécifique ou vide.
- Propriété
-
Affichage des conditions :
- Méthode
afficher():- Affiche les conditions dans un conteneur dédié.
- Ajoute des boutons interactifs (
+et-) pour ajouter ou supprimer des conditions.
- Méthode
3. Affichage
- Affichage de la structure
Switch:- Méthode
afficher():- Affiche la structure
Switchsur le plan de travail. - Ajoute des éléments visuels, tels que :
- Un champ pour l'expression à tester.
- Des triangles interactifs pour ajouter ou supprimer des conditions.
- Des séparateurs visuels (
<hr>).
- Affiche la structure
- Méthode
4. Exportation des Données
-
Formats supportés :
- JSON.
-
Méthodes associées :
toJSON():- Exporte les informations de la structure
Switchsous forme JSON. - Inclut les coordonnées, l'expression à tester, et les conditions.
- Exporte les informations de la structure
toJSONspecifier(listeElemEnfantsAConcerver):- Exporte les informations en spécifiant les enfants à conserver.
5. Détection des Anomalies
- Recherche des anomalies :
- Méthode
rechercherAnomalies():- Recherche les anomalies spécifiques à la structure
Switch. - Exemples d'anomalies détectées :
- ErreurSyntaxeComparaison : Erreurs dans la syntaxe des comparaisons.
- AvertissementTropDeSousElements : Trop de sous-éléments dans la structure.
- ErreurComparaisonSwitch : Comparaisons incorrectes dans les conditions.
- ErreurTypesInconsistantsAlternatif : Types incohérents dans les branches alternatives.
- Recherche les anomalies spécifiques à la structure
- Méthode
6. Extraction des Informations
-
Extraction des variables :
- Méthode
ExtraireVariables():- Extrait les variables utilisées dans l'expression à tester.
- Méthode
-
Extraction des informations :
- Méthode
extraireInformation():- Extrait les informations contenues dans la structure
Switch. - Retourne une liste d'objets
Information.
- Extrait les informations contenues dans la structure
- Méthode
Attributs Internes
Attributs principaux :
_expressionATester: L'expression utilisée dans leswitch._ancienneExpressionATester: L'expression précédente pour permettre l'annulation/rétablissement._listeConditions: Liste des conditions associées à la structureSwitch._editeur: Référence à l'éditeur principal.
Méthodes Clés
Méthodes de gestion de l'expression :
get expressionATester(): Renvoie l'expression actuelle.set expressionATester(value): Définit une nouvelle expression à tester.
Méthodes de gestion des conditions :
ajouterCondition(): Ajoute une nouvelle condition.supprimerCondition(): Supprime une condition spécifique ou vide.
Méthodes d'affichage :
afficher(): Affiche la structureSwitchsur le plan de travail.
Méthodes d'exportation :
toJSON(): Exporte la structureSwitchsous forme JSON.toJSONspecifier(listeElemEnfantsAConcerver): Exporte la structure en spécifiant les enfants à conserver.
Méthodes de détection des anomalies :
rechercherAnomalies(): Recherche les anomalies spécifiques à la structureSwitch.
Méthodes d'extraction des informations :
ExtraireVariables(): Extrait les variables utilisées dans l'expression à tester.extraireInformation(): Extrait les informations contenues dans la structureSwitch.
Exemple d'Utilisation
Création d'une Structure Switch
const structureSwitch = new StructureSwitch(10, 20, [], "variable");
document.body.appendChild(structureSwitch);
Modification de l'Expression à Tester
structureSwitch.expressionATester = "nouvelleVariable";
console.log(structureSwitch.expressionATester);
Ajout d'une Condition
const condition = new Condition();
structureSwitch.ajouterCondition(condition);
Exportation en JSON
const json = structureSwitch.toJSON();
console.log(json);
Détection des Anomalies
const anomalies = structureSwitch.rechercherAnomalies();
console.log(anomalies);