/// <summary> /// detail の taggedValue XML (/detail/#taggedValue_${guid}_${LR}.xml) を読み、得られたVOを返却する /// /// </summary> /// <returns>MethodVO</returns> public TaggedValueVO readTaggedValueDiffDetail(string tagGuid, string leftRight) { string target_dir = ProjectSetting.getVO().projectPath; string fileName = target_dir + "/detail/" + "#taggedValue_" + tagGuid.Substring(1, 36) + "_" + leftRight + ".xml"; // 指定されたfileNameでファイルが存在しなかったらnullを返す if (!System.IO.File.Exists(fileName)) { return(null); } // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); // taggedValues ノードに移動する XmlNode tvNode = xmlDoc.SelectSingleNode("tv"); if (tvNode != null) { return(ElementsXmlReader.readTaggedValue(tvNode)); } else { return(new TaggedValueVO()); } }
/// <summary> /// detail の method XML (/detail/#method_${guid}_${LR}.xml) を読み、得られたVOを返却する /// /// </summary> /// <returns>MethodVO</returns> public MethodVO readMethodDiffDetail(string methodGuid, string leftRight) { string target_dir = ProjectSetting.getVO().projectPath; string fileName = target_dir + "/detail/" + "#method_" + methodGuid.Substring(1, 36) + "_" + leftRight + ".xml"; // 指定されたfileNameでファイルが存在しなかったらnullを返す if (!System.IO.File.Exists(fileName)) { return(null); } // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); // methodノードに移動する XmlNode mthNode = xmlDoc.SelectSingleNode("method"); if (mthNode != null) { return(ElementsXmlReader.readMethod(mthNode)); } else { return(new MethodVO()); } }
/// <summary> /// detail の attribute XML (/detail/#attribute_${guid}_${LR}.xml) を読み、得られたVOを返却する /// /// </summary> /// <returns>AttributeVO</returns> public AttributeVO readAttributeDiffDetail(string attributeGuid, string leftRight) { string target_dir = ProjectSetting.getVO().projectPath; string fileName = target_dir + "/detail/" + "#attribute_" + attributeGuid.Substring(1, 36) + "_" + leftRight + ".xml"; // 指定されたfileNameでファイルが存在しなかったらnullを返す if (!System.IO.File.Exists(fileName)) { return(null); } // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); // attributeノードに移動する XmlNode attrNode = xmlDoc.SelectSingleNode("attribute"); if (attrNode != null) { return(ElementsXmlReader.readAttribute(attrNode)); } else { return(new AttributeVO()); } }
/// <summary> /// パッケージの読み込み(再帰処理) /// 引数のパッケージノード以下を再帰的に読み込み、 Package, Element をVOに読み込む /// </summary> /// <param name="pkgvo">(out)パッケージのVO</param> /// <param name="parentNode">(in)対象のパッケージのXmlNode</param> private void readPackages(PackageVO pkgvo, XmlNode parentNode) { List <PackageVO> retList = new List <PackageVO>(); List <ElementVO> retElementList = new List <ElementVO>(); List <DiagramVO> retDiagramList = new List <DiagramVO>(); PackageVO pkg = null; foreach (XmlNode pkgNode in parentNode.ChildNodes) { if ("package".Equals(pkgNode.Name)) { pkg = readPackageNode(pkgNode); readPackages(pkg, pkgNode); retList.Add(pkg); } // package配下で elementノードを見つけたら if ("element".Equals(pkgNode.Name)) { // elementノード配下の情報から、 ElementVO を返却する ElementVO elem = ElementsXmlReader.readElement(pkgNode, sortByPosFlg); elem.packageId = pkgvo.packageId; // 強いてelement毎のXMLファイルを読む必要がある場合のみ if (elementFileReadFlg) { // 強いてelement毎のXMLファイルを読む必要がある場合のみ if (ElementsXmlReader.existElementFile(elem.guid)) { elem = ElementsXmlReader.readElementFile(elem.guid); } } retElementList.Add(elem); } // package配下で diagram ノードを見つけたら if ("diagram".Equals(pkgNode.Name)) { retDiagramList.Add(readDiagramNode(pkgNode)); } } pkgvo.childPackageList = retList; pkgvo.elements = retElementList; pkgvo.diagrams = retDiagramList; }
/// <summary> /// パッケージの読み込み(再帰処理) /// 引数のパッケージノード以下を再帰的に読み込み、 Package, Element をVOに読み込む /// </summary> /// <param name="pkgvo">(out)パッケージのVO</param> /// <param name="parentNode">(in)対象のパッケージのXmlNode</param> private void readPackages(PackageVO pkgvo, XmlNode parentNode) { List <PackageVO> retList = new List <PackageVO>(); List <ElementVO> retElementList = new List <ElementVO>(); List <DiagramVO> retDiagramList = new List <DiagramVO>(); foreach (XmlNode pkgNode in parentNode.ChildNodes) { if ("package".Equals(pkgNode.Name)) { PackageVO pkg = new PackageVO(); foreach (XmlAttribute attr in pkgNode.Attributes) { switch (attr.Name) { case "name": pkg.name = attr.Value; break; case "guid": pkg.guid = attr.Value; break; case "alias": pkg.alias = attr.Value; break; case "stereotype": pkg.stereoType = attr.Value; break; case "TPos": pkg.treePos = readAttributeIntValue(attr); break; case "changed": pkg.changed = readAttributeCharValue(attr); break; } } readPackages(pkg, pkgNode); retList.Add(pkg); } // package配下で elementノードを見つけたら if ("element".Equals(pkgNode.Name)) { // elementノード配下の情報から、 ElementVO を返却する ElementVO elem = ElementsXmlReader.readElement(pkgNode, sortByPosFlg); // 強いてelement毎のXMLファイルを読む必要がある場合のみ if (elementFileReadFlg) { // 強いてelement毎のXMLファイルを読む必要がある場合のみ if (ElementsXmlReader.existElementFile(elem.guid)) { elem = ElementsXmlReader.readElementFile(elem.guid); } } retElementList.Add(elem); } // package配下で diagram ノードを見つけたら if ("diagram".Equals(pkgNode.Name)) { retDiagramList.Add(readDiagramNode(pkgNode)); } } pkgvo.childPackageList = retList; pkgvo.elements = retElementList; pkgvo.diagrams = retDiagramList; // ソート順指定フラグにより、ソート処理が分かれる if (sortByPosFlg) { pkgvo.sortChildNodes(); //pkgvo.sortChildPackages(); //pkgvo.sortElements(); } else { pkgvo.sortChildNodesGuid(); //pkgvo.sortChildPackagesGUID(); //pkgvo.sortElementsGUID(); } }