final void crawlFromRoot(FormationComposite root) {
   for (FormationComponent component : root.getFormations()) {
     if (component.isLeaf()) {
       this.onLeafFound((FormationLeaf) component);
     } else {
       FormationComposite composite = (FormationComposite) component;
       this.onCompositeFound(composite);
       this.crawlFromRoot(composite);
     }
   }
 }