flowchart TD GetProvider["MWBS.GetProvider()
Instancie un provider et y ajoute tous les objets extraits des listes plates"] InjectProviderRefs["Injection du provider dans chaque objet
Tous les ensembles et composants reçoivent une référence au provider"] Construire["Appel à Construire()
Déclenche la reconstruction récursive depuis le niveau 0"] CheckContexte["Le contexte du niveau 0 est connu,
mais doit être propagé manuellement aux enfants
"] Reconstruction["Reconstruction enfants + composants
Chaque objet utilise sa référence au provider"] LogiqueRole["Stratégie 1 :
Recherche par ref + m_sRole
Pour les enfants métiers typés"] LogiqueType["Stratégie 2 :
Recherche par ref + type
Pour des listes homogènes d’objets"] LogiqueRefSeul["Stratégie 3 :
Recherche uniquement par ref
Pour traitement générique (ex: sommation)"] HierarchieFonctionnelle["Hiérarchie métier fonctionnelle
préparée pour Calculer()"] CalculReservoir["MENReservoir.Calculer()
Orchestre les calculs descendus vers MENVirole et MENFondBombe"] GetProvider --> InjectProviderRefs InjectProviderRefs --> Construire Construire --> CheckContexte CheckContexte --> Reconstruction Reconstruction --> LogiqueRole Reconstruction --> LogiqueType Reconstruction --> LogiqueRefSeul LogiqueRole --> HierarchieFonctionnelle LogiqueType --> HierarchieFonctionnelle LogiqueRefSeul --> HierarchieFonctionnelle HierarchieFonctionnelle --> CalculReservoir