public ProjectData(XmlNode xmlNode)
        {
            XmlNode = xmlNode;

            ListOfModuleData = new List<ModuleData>();

            ListOfTraduction = new Dictionary<string, string>();

            foreach (XmlNode moduleXmlNode in xmlNode["uml:Model"]["packagedElement"].ChildNodes)
            {
                if (moduleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package"))
                {
                    if (moduleXmlNode.Attributes["name"].Value.Equals("OpenERP"))
                    {
                        foreach (XmlNode nativeModuleXmlNode in xmlNode["xmi:Extension"]["elements"].ChildNodes)
                        {
                            if ((nativeModuleXmlNode.Attributes["xmi:type"] != null) &&
                                (nativeModuleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package")))
                            {
                                if ((nativeModuleXmlNode["model"] != null) &&
                                    (nativeModuleXmlNode["model"].Attributes["package"] != null) &&
                                    (nativeModuleXmlNode["model"].Attributes["package"].Value.Equals(moduleXmlNode.Attributes["xmi:id"].Value)))
                                {
                                    if (!nativeModuleXmlNode.Attributes["name"].Value.Equals("Enumerations"))
                                    {
                                        ModuleData moduleData = new ModuleData(this, nativeModuleXmlNode, xmlNode["xmi:Extension"]["elements"]);
                                        moduleData.Native = true;

                                        ListOfModuleData.Add(moduleData);
                                    }
                                    else
                                    {
                                        ListOfEnumerationData = new List<EnumerationData>();
                                        foreach (XmlNode enumerationNode in xmlNode["xmi:Extension"]["elements"].ChildNodes)
                                        {
                                            if ((enumerationNode["model"] != null) &&
                                                (enumerationNode["model"].Attributes["package"] != null) &&
                                                (enumerationNode["model"].Attributes["package"].Value.Equals(nativeModuleXmlNode.Attributes["xmi:idref"].Value)))
                                            {
                                                EnumerationData enumerationData = new EnumerationData(enumerationNode);
                                                ListOfEnumerationData.Add(enumerationData);
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        break;
                    }
                }
            }


            foreach (XmlNode moduleXmlNode in xmlNode["uml:Model"]["packagedElement"].ChildNodes)
            {
                if (moduleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package"))
                {
                    if (!moduleXmlNode.Attributes["name"].Value.Equals("OpenERP"))
                    {
                        ModuleData moduleData = new ModuleData(this, moduleXmlNode, xmlNode["xmi:Extension"]["elements"]);

                        ListOfModuleData.Add(moduleData);
                    }
                }
            }

            foreach (ModuleData moduleData in ListOfModuleData)
            {
                foreach (ClassData classData in moduleData.ListOfClass)
                {
                    addTraduction(classData, classData.Alias);

                    foreach (PropertyData propertyData in classData.ListOfProperties)
                    {
                        addTraduction(classData, propertyData.Alias);
                    }
                }
            }
        }
Пример #2
0
        public ProjectData(XmlNode xmlNode)
        {
            XmlNode = xmlNode;

            ListOfModuleData = new List <ModuleData>();

            ListOfTraduction = new Dictionary <string, string>();

            foreach (XmlNode moduleXmlNode in xmlNode["uml:Model"]["packagedElement"].ChildNodes)
            {
                if (moduleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package"))
                {
                    if (moduleXmlNode.Attributes["name"].Value.Equals("OpenERP"))
                    {
                        foreach (XmlNode nativeModuleXmlNode in xmlNode["xmi:Extension"]["elements"].ChildNodes)
                        {
                            if ((nativeModuleXmlNode.Attributes["xmi:type"] != null) &&
                                (nativeModuleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package")))
                            {
                                if ((nativeModuleXmlNode["model"] != null) &&
                                    (nativeModuleXmlNode["model"].Attributes["package"] != null) &&
                                    (nativeModuleXmlNode["model"].Attributes["package"].Value.Equals(moduleXmlNode.Attributes["xmi:id"].Value)))
                                {
                                    if (!nativeModuleXmlNode.Attributes["name"].Value.Equals("Enumerations"))
                                    {
                                        ModuleData moduleData = new ModuleData(this, nativeModuleXmlNode, xmlNode["xmi:Extension"]["elements"]);
                                        moduleData.Native = true;

                                        ListOfModuleData.Add(moduleData);
                                    }
                                    else
                                    {
                                        ListOfEnumerationData = new List <EnumerationData>();
                                        foreach (XmlNode enumerationNode in xmlNode["xmi:Extension"]["elements"].ChildNodes)
                                        {
                                            if ((enumerationNode["model"] != null) &&
                                                (enumerationNode["model"].Attributes["package"] != null) &&
                                                (enumerationNode["model"].Attributes["package"].Value.Equals(nativeModuleXmlNode.Attributes["xmi:idref"].Value)))
                                            {
                                                EnumerationData enumerationData = new EnumerationData(enumerationNode);
                                                ListOfEnumerationData.Add(enumerationData);
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        break;
                    }
                }
            }


            foreach (XmlNode moduleXmlNode in xmlNode["uml:Model"]["packagedElement"].ChildNodes)
            {
                if (moduleXmlNode.Attributes["xmi:type"].Value.Equals("uml:Package"))
                {
                    if (!moduleXmlNode.Attributes["name"].Value.Equals("OpenERP"))
                    {
                        ModuleData moduleData = new ModuleData(this, moduleXmlNode, xmlNode["xmi:Extension"]["elements"]);

                        ListOfModuleData.Add(moduleData);
                    }
                }
            }

            foreach (ModuleData moduleData in ListOfModuleData)
            {
                foreach (ClassData classData in moduleData.ListOfClass)
                {
                    addTraduction(classData, classData.Alias);

                    foreach (PropertyData propertyData in classData.ListOfProperties)
                    {
                        addTraduction(classData, propertyData.Alias);
                    }
                }
            }
        }