@ Dominique Denis
Voila une exemple restreint de traitement d'un fichier json, pour générer automatiquement un gestionnaire.
Le programme est écrit en Java (Processing), mais serait très semblable en C++. Le programme traite le fichier json (sans test d'erreur !) et génère des objets "zone" et des objets "aiguilles". Les objets zone contiennent un codage (Java) des liens entre les zones (voisins).
Le programme (voir fichier accompagnant) comporte quatre onglets :
- un onglet qui appelle le traitement et qui affiche la liste des zones (avec le code des liens) et des aiguilles, puis qui affiche pour chaque zone les suivants réels en fonction de la position effectives des aiguilles.
- un onglet comportant deux classes : Zone et Aiguille. Ce sont des "modèles" qui seront instanciées par le traitement.
- un onglet traitement du fichier json. Il y a trois phases : le traitement des zones sans celui des voisins (infaisable pendant la première phase), une instance de "Zone" est crée pour chaque zone. La deuxième phase traite les aiguilles. La troisième phase traite des liens entre les zones. il y a deux cas, un cas simple et un cas compliqué. Le cas simple est quand le voisin ne dépend pas de la position d'aiguilles (zone sans aiguille, aiguille en talon, ...), une fonctionnelle simple est élaborée, un fonctionnelle c'est une méthode que l'on appellera dans le gestionnaire lors de son fonctionnement effectif sur le réseau pour connaitre un voisin d'une zone. Le cas compliqué est quand un voisin dépend de la position d'une ou plusieurs aiguilles, il faut transformer en objets Java la description json de la chose et élaborer une fonctionnelle(comme pour le cas simple), cette fonctionnelle ayant une forme beaucoup plus compliquée.
- le dernier onglet contient les classes Java nécessaires pour coder en Java les descriptions json des voisins dépendants d'aiguilles.
Pierre