Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="package"></param>
        /// <param name="sw"></param>
        /// <param name="packagePath"></param>
        private void writePackage(PackageVO package, StreamWriter sw, string packagePath)
        {
            string pathName = "";

            if (packagePath != "")
            {
                pathName = packagePath + "/" + package.name;
            }
            else
            {
                pathName = package.name;
            }

            // 要素別AsciiDocファイルの出力先を指定
            string elementsDir = ProjectSetting.getVO().projectPath + "\\elements";

            // 直下に出力すべき要素が1つも存在しないパッケージは出力の対象外とする(ドキュメント内での項番も不要)
            if (countPrintableElement(package) > 0)
            {
                sw.WriteLine("## パッケージ: " + pathName);
                sw.WriteLine("// GUID: " + package.guid);
                sw.WriteLine("");

                // このパッケージ直下にダイアグラムを持っていたら
                if (package.diagrams != null && package.diagrams.Count > 0)
                {
                    foreach (DiagramVO diag in package.diagrams)
                    {
                        // writeDiagramData(diag, sw);
                        writeDiagramPlantUml(diag, sw);
                    }
                }

                foreach (ElementVO elem in package.elements)
                {
                    if (elem.eaType == "Class" || elem.eaType == "Interface" || elem.eaType == "Enumeration" || elem.eaType == "UseCase" || elem.eaType == "Actor")
                    {
                        //ElementAsciidocWriter.writeElement(elem, sw);
                        string relPath = ElementAsciidocWriter.doWrite(elementsDir, elem);
                        writeElementInclude(sw, relPath);
                    }
                }

                sw.WriteLine("<<<");
                sw.WriteLine("");
            }

            if (package.childPackageList != null && package.childPackageList.Count > 0)
            {
                foreach (PackageVO pkg in package.childPackageList)
                {
                    writePackage(pkg, sw, pathName);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="package"></param>
        /// <param name="sw"></param>
        /// <param name="packagePath"></param>
        private void writePackage(PackageVO package, StreamWriter sw, string packagePath)
        {
            string pathName = "";

            if (packagePath != "")
            {
                pathName = packagePath + "/" + package.name;
            }
            else
            {
                pathName = package.name;
            }

            // 直下に出力すべき要素が1つも存在しないパッケージは出力の対象外とする(ドキュメント内での項番も不要)
            if (countPrintableElement(package) > 0)
            {
                sw.WriteLine("## パッケージ: " + pathName);
                sw.WriteLine("// GUID: " + package.guid);
                sw.WriteLine("");

                foreach (ElementVO elem in package.elements)
                {
                    if (elem.eaType == "Class" || elem.eaType == "Interface" || elem.eaType == "Enumeration")
                    {
                        ElementAsciidocWriter.writeElement(elem, sw);
                    }
                }

                sw.WriteLine("<<<");
                sw.WriteLine("");
            }

            if (package.childPackageList != null && package.childPackageList.Count > 0)
            {
                foreach (PackageVO pkg in package.childPackageList)
                {
                    writePackage(pkg, sw, pathName);
                }
            }
        }