예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        /// <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);
        }