コード例 #1
0
        /// <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());
            }
        }
コード例 #2
0
        /// <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());
            }
        }
コード例 #3
0
        /// <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());
            }
        }
コード例 #4
0
        /// <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;
        }
コード例 #5
0
        /// <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();
            }
        }