/// <summary> /// retourne la liste des type de retour des proprietes dynamiques des classes /// </summary> /// <param name="doc"></param> /// <param name="nsmgr"></param> /// <returns></returns> public static List <List <ParametreEntrant> > ParametresEntrantsMethodesClasses(XmlDocument doc, XmlNamespaceManager nsmgr) { XmlNodeList nodeList2; XmlElement root = doc.DocumentElement; List <List <string> > ListeMethodesClasses = new List <List <string> >(); List <List <ParametreEntrant> > ParametresEntrantsMethodesClasses = new List <List <ParametreEntrant> >(); for (int i = 1; i < Classe.NombreClasses(doc, nsmgr) + 1; i++) { if (Methode.NombreMethodesClasse(doc, nsmgr)[i - 1] != 0) { for (int cmp = 0; cmp < Methode.NombreMethodesClasse(doc, nsmgr)[i - 1]; cmp++) { ListeMethodesClasses.Add(new List <string>()); string xpath = @"// w:p [ w:pPr / w:pStyle [@w:val='Heading1']][2] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading2']][" + i + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading3']][4] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading4']][" + (cmp + 1) + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading5']][2] / following-sibling:: w:tbl / w:tr /w:tc [count(. | // w:p [ w:pPr / w:pStyle [@w:val='Heading1']][2] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading2']][" + i + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading3']][4] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading4']][" + (cmp + 1) + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading5']][3] / preceding-sibling::w:tbl / w:tr /w:tc)= count(// w:p [ w:pPr / w:pStyle [@w:val='Heading1']][2] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading2']][" + i + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading3']][4] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading4']][" + (cmp + 1) + "] /following:: w:p [ w:pPr / w:pStyle [@w:val='Heading5']][3] / preceding-sibling::w:tbl / w:tr /w:tc)]"; nodeList2 = root.SelectNodes(xpath, nsmgr); foreach (XmlNode isbn2 in nodeList2) { if (isbn2.InnerText != "") { ListeMethodesClasses[cmp].Add(isbn2.InnerText.Trim()); } } ParametresEntrantsMethodesClasses.Add(ListeAParametresEntrants(ListeMethodesClasses[cmp])); } } } return(ParametresEntrantsMethodesClasses); }
public static List <Classe> Classes(XmlDocument doc, XmlNamespaceManager nsmgr) { List <Classe> classes = new List <Classe>(); List <string> noms = NomsClasses(doc, nsmgr); List <List <Attribut> > attributs = Attribut.GetAttributsClasses(doc, nsmgr); List <Constructeur> constructeurs = Constructeur.Constructeurs(doc, nsmgr); List <List <Methode> > methodes = Methode.Methodes(doc, nsmgr); List <List <ProprieteDynamique> > proprietesDynamiques = ProprieteDynamique.ProprietesDynamiques(doc, nsmgr); for (int i = 1; i < Classe.NombreClasses(doc, nsmgr) + 1; i++) { if (ProprieteDynamique.NombreProprietesDynamiques(doc, nsmgr)[i - 1] == 0 && Methode.NombreMethodesClasse(doc, nsmgr)[i - 1] == 0) { classes.Add(new Classe(noms[i - 1], attributs[i - 1], constructeurs[i - 1])); } if (ProprieteDynamique.NombreProprietesDynamiques(doc, nsmgr)[i - 1] != 0 && Methode.NombreMethodesClasse(doc, nsmgr)[i - 1] != 0) { classes.Add(new Classe(noms[i - 1], attributs[i - 1], constructeurs[i - 1], proprietesDynamiques[i - 1], methodes[i - 1])); } if (ProprieteDynamique.NombreProprietesDynamiques(doc, nsmgr)[i - 1] != 0 && Methode.NombreMethodesClasse(doc, nsmgr)[i - 1] == 0) { classes.Add(new Classe(noms[i - 1], attributs[i - 1], constructeurs[i - 1], proprietesDynamiques[i - 1])); } if (ProprieteDynamique.NombreProprietesDynamiques(doc, nsmgr)[i - 1] == 0 && Methode.NombreMethodesClasse(doc, nsmgr)[i - 1] != 0) { classes.Add(new Classe(noms[i - 1], attributs[i - 1], constructeurs[i - 1], methodes[i - 1])); } } return(classes); }
/// <summary> /// Retourne le nombre de methodes dans le fichier /// </summary> /// <param name="doc"></param> /// <param name="nsmgr"></param> /// <returns></returns> public static List <int> NombreMethodesClasse(XmlDocument doc, XmlNamespaceManager nsmgr) { List <int> NombreMethodesClasses = new List <int>(); foreach (List <string> liste in Methode.NomsMethodesClasses(doc, nsmgr)) { NombreMethodesClasses.Add(liste.Count); } return(NombreMethodesClasses); }