/// <summary> /// Ajoute un résultat /// </summary> /// <param name="consommateur"></param> public void AddResultat(INoeudCheminResultatRechercheObjet noeud) { CCheminResultatRechercheObjet chemin = null; if (m_pileChemins.Count > 0) { chemin = m_pileChemins.Peek(); } chemin = new CCheminResultatRechercheObjet(noeud, chemin); m_arbreResultat.AddResultat(chemin); }
/// <summary> /// Range les résultats suivants sous un nouveau chemin /// </summary> /// <param name="noeud"></param> public void PushChemin(INoeudCheminResultatRechercheObjet noeud) { if (m_pileChemins.Count > 0) { CCheminResultatRechercheObjet chemin = m_pileChemins.Peek(); m_pileChemins.Push(new CCheminResultatRechercheObjet(noeud, chemin)); } else { m_pileChemins.Push(new CCheminResultatRechercheObjet(noeud, null)); } }
/// <summary> /// Ajoute un résultat à l'arbre /// </summary> /// <param name="chemin"></param> /// <param name="resultat"></param> internal void AddResultat(CCheminResultatRechercheObjet chemin) { if (chemin != null && chemin.NoeudsRacine != null) { foreach (CArbreResultatRechercheObjet arbreFils in Branches) { if (arbreFils.Noeud != null && arbreFils.Noeud.Equals(chemin.NoeudsRacine)) { arbreFils.AddResultat(chemin.CheminFils); return; } } CArbreResultatRechercheObjet branche = new CArbreResultatRechercheObjet(chemin.NoeudsRacine); m_branches.Add(branche); branche.AddResultat(chemin.CheminFils); return; } }
public CCheminResultatRechercheObjet(INoeudCheminResultatRechercheObjet noeud, CCheminResultatRechercheObjet cheminParent) { m_listeNoeuds = new List <INoeudCheminResultatRechercheObjet>(); if (cheminParent != null) { m_listeNoeuds.AddRange(cheminParent.m_listeNoeuds); } m_listeNoeuds.Add(noeud); }