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); } } } }
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); } } } }