private void initProject() { string artifactsFileName = ProjectSetting.getVO().artifactsFile; string artifactDir = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath; // artifactList.Items.Clear(); this.artifacts = ArtifactsXmlReader.readArtifactList(artifactDir, artifactsFileName); string atfnodename; for (int i = 0; i < artifacts.Count; i++) { ArtifactVO atf = artifacts[i]; TreeNode packageNode = addPackageNodes(atf.pathName); if (atf.changed == ' ') { atfnodename = atf.name; } else { atfnodename = atf.name + " [" + atf.changed + "]"; } TreeNode atfNode = new TreeNode(atfnodename, 2, 1); atfNode.Tag = atf; atfNode.ContextMenuStrip = contextMenuStrip1; packageNode.Nodes.Add(atfNode); treeNodeMap.Add(atf.guid, atfNode); } this.treeView1.Nodes.Add(rootNode); }
/// <summary> /// パッケージの子を辿り、成果物マーク(isControlled)が立っているパッケージを成果物としてリストに追加する /// </summary> /// <param name="pkg"></param> /// <param name="parentPath"></param> private void searchArtifactPackage(PackageVO pkg, string parentPath, List <ArtifactVO> outArtifacts) { string nowPath = parentPath + "/" + pkg.name; if (pkg.isControlled) { Console.WriteLine("hit artifactTarget: guid=" + pkg.guid + ", path=" + nowPath); // 成果物VOを生成し、このパッケージを対象にする ArtifactVO atf = new ArtifactVO(); atf.guid = pkg.guid; atf.name = pkg.name; atf.pathName = parentPath; atf.projectName = rootName; atf.package = pkg; // 出力用の成果物リストに追加 outArtifacts.Add(atf); } else { if (pkg.childPackageList != null) { foreach (PackageVO p in pkg.childPackageList) { searchArtifactPackage(p, nowPath, outArtifacts); } } } }
/// <summary> /// t_attr_meth テーブルに属性行の追加 /// </summary> /// <param name="atf"></param> /// <param name="elem"></param> private void insertAttrTable(ArtifactVO atf, ElementVO elem, AttributeVO attr) { string sql = @"insert into t_attr_mth ( attrMthId, elemId, elemGuid, attrMthFlg, attrMthType, attrMthGuid, attrMthName, attrMthAlias, attrMthNotes ) values ( @attrMthId, @elemId, @elemGuid, @attrMthFlg, @attrMthType, @attrMthGuid, @attrMthName, @attrMthAlias, @attrMthNotes ) " ; using (SQLiteCommand command2 = conn.CreateCommand()) { SQLiteParameter[] parameters = new SQLiteParameter[] { new SQLiteParameter("@attrMthId", (attr.attributeId) * -1) , new SQLiteParameter("@elemId", elem.elementId) , new SQLiteParameter("@elemGuid", elem.guid) , new SQLiteParameter("@attrMthFlg", "a") , new SQLiteParameter("@attrMthType", attr.eaType) , new SQLiteParameter("@attrMthGuid", attr.guid) , new SQLiteParameter("@attrMthName", attr.name) , new SQLiteParameter("@attrMthAlias", attr.alias) , new SQLiteParameter("@attrMthNotes", attr.notes) }; command2.CommandText = sql; command2.Parameters.AddRange(parameters); command2.ExecuteNonQuery(); } }
void ViewGuidToolStripMenuItemClick(object sender, EventArgs e) { TreeNode tn = treeView1.SelectedNode; ArtifactVO atf = (ArtifactVO)tn.Tag; MessageBox.Show("成果物パッケージGUID=" + atf.guid); }
private void outputChangedDetailMethod(ArtifactVO atf, ElementVO elem, MethodVO mth, StreamWriter sw) { sw.Write("\"" + atf.changed + "\""); sw.Write(",\"" + atf.guid + "\""); sw.Write(",\"" + atf.name + "\""); sw.Write(",\"" + atf.pathName + "\""); sw.Write(",\"" + elem.changed + "\""); sw.Write(",\"" + elem.guid + "\""); sw.Write(",\"" + elem.name + "\""); sw.Write(",\"操作\""); sw.Write(",\"" + mth.changed + "\""); sw.Write(",\"" + mth.guid + "\""); sw.Write(",\"" + mth.name + "\""); if (mth.changed == 'D' || mth.changed == 'U') { sw.Write(",\"#method_" + mth.guid.Substring(1, 36) + "_L.xml\""); } else { sw.Write(",\"\""); } if (mth.changed == 'C' || mth.changed == 'U') { sw.Write(",\"#method_" + mth.guid.Substring(1, 36) + "_R.xml\""); } else { sw.Write(",\"\""); } sw.WriteLine(""); }
/// <summary> /// 要素情報のインデックステーブルの行追加 /// </summary> /// <param name="atf"></param> /// <param name="elem"></param> private void insertMthTable(ArtifactVO atf, ElementVO elem, MethodVO mth) { string sql = @"insert into t_attr_mth ( attrMthId, elemId, elemGuid, attrMthFlg, attrMthType, attrMthGuid, attrMthName, attrMthAlias, attrMthNotes, mthParamDesc ) values ( @attrMthId, @elemId, @elemGuid, @attrMthFlg, @attrMthType, @attrMthGuid, @attrMthName, @attrMthAlias, @attrMthNotes, @mthParamDesc ) " ; using (SQLiteCommand command2 = conn.CreateCommand()) { SQLiteParameter[] parameters = new SQLiteParameter[] { new SQLiteParameter("@attrMthId", (mth.methodId)) , new SQLiteParameter("@elemId", elem.elementId) , new SQLiteParameter("@elemGuid", elem.guid) , new SQLiteParameter("@attrMthFlg", "m") , new SQLiteParameter("@attrMthType", mth.returnType) , new SQLiteParameter("@attrMthGuid", mth.guid) , new SQLiteParameter("@attrMthName", mth.name) , new SQLiteParameter("@attrMthAlias", mth.alias) , new SQLiteParameter("@attrMthNotes", mth.notes) , new SQLiteParameter("@mthParamDesc", mth.getParamDesc()) }; command2.CommandText = sql; command2.Parameters.AddRange(parameters); command2.ExecuteNonQuery(); } }
/// <summary> /// 要素リストを受け、要素のノートと操作のふるまいをテキスト出力する。 /// テキスト解析に使用する。 /// </summary> /// <param name="atf">対象成果物VO</param> /// <param name="elements">要素の</param> /// <param name="sw"></param> private void setParsedCodeInArtifact(ArtifactVO atf) { foreach (ElementVO elem in atf.getOwnElements()) { if (elem.methods != null) { foreach (MethodVO mth in elem.methods) { List <BehaviorChunk> chunks = behaviorParser.parseBehavior(mth); StringWriter outsw = new StringWriter(); foreach (BehaviorChunk cnk in chunks) { if (cnk.behaviorToken == null || cnk.behaviorToken.token == "[comment]") { outsw.WriteLine(generateIndentStr(cnk.indLv) + "// " + cnk.dottedNum + " " + cnk.behavior); } else { outsw.WriteLine(generateIndentStr(cnk.indLv) + cnk.getTokenRepresented()); } } mth.code = outsw.ToString(); outsw.Close(); } } } }
/// <summary> /// Artifact XML (atf_${guid}.xml) を読み、リスト化する /// /// XML例: /// <artifacts targetProject='Logical' lastUpdated='2017/10/13 10:27:32' targetModel='Logical' > /// <artifact guid='{11EF4332-5CB7-4ecd-8E78-0E50A6E7D3E7}' name='共通設計モデル' path='/論理モデル/レイヤ別ビュー/フレームワーク_STEP3移管対象/' stereotype='fw.adesk_cmn' /> /// </artifacts> /// /// </summary> /// <returns>ArtifactVOのリスト</returns> public void readArtifactDesc(ArtifactVO artifact) { string target_dir = null; if (this.projectPath != null) { target_dir = this.projectPath; } else { target_dir = ConfigurationManager.AppSettings["artifact_dir"]; } string fileName = target_dir + "/" + "atf_" + artifact.guid.Substring(1, 36) + ".xml"; // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); // artifactノードに移動する XmlNode artifactNode = xmlDoc.SelectSingleNode("artifact"); if (artifactNode != null) { artifact.package = readRootPackage(artifactNode); } }
/// <summary> /// /// </summary> /// <param name="atf"></param> private void insertAttrMthInArtifact(ArtifactVO atf) { foreach (ElementVO elem in atf.getOwnElements()) { foreach (AttributeVO attr in elem.attributes) { insertAttrTable(atf, elem, attr); elementRecCount++; if (elementRecCount > 0 && (elementRecCount + 1) % 1000 == 0) { Console.Write("."); transaction.Commit(); transaction = conn.BeginTransaction(); } } foreach (MethodVO mth in elem.methods) { insertMthTable(atf, elem, mth); elementRecCount++; if (elementRecCount > 0 && (elementRecCount + 1) % 1000 == 0) { Console.Write("."); transaction.Commit(); transaction = conn.BeginTransaction(); } } } }
/// <summary> /// EAから取得したパッケージ情報でartifactXMLを更新し、取得結果を新しいArtifactVOに入れて返却する /// </summary> /// <returns></returns> public ArtifactVO makeArtifactXml() { // if (eaPackageObj.IsControlled == false) { // } ArtifactVO atf = new ArtifactVO(); atf.artifactId = ""; atf.changed = ' '; atf.createDate = rootPackObj.Element.Created.ToString(); atf.guid = rootPackObj.PackageGUID; atf.name = rootPackObj.Name; atf.notes = rootPackObj.Notes; atf.pathName = makePackagePathFromEAPackage(rootPackObj); atf.projectName = "ASW"; atf.stereoType = rootPackObj.StereotypeEx; atf.updateDate = rootPackObj.Element.Modified.ToString(); atf.package = ObjectEAConverter.getPackageFromEAObject(rootPackObj); atf.packageId = rootPackObj.PackageID; string artifactDir = ProjectSetting.getVO().projectPath + ProjectSetting.getVO().artifactsPath; ArtifactXmlWriter.outputArtifactXml(artifactDir, atf); // writer.outputArtifactXml(@"C:\WORK", atf); return(atf); }
private void writeElement(ArtifactVO atf, ElementVO elem) { string sql = @"insert into t_element (elemGuid, elemName, elemAlias, elemType, elemStereotype, artifactGuid, artifactName, artifactPath ) values ( @elemGuid, @elemName, @elemAlias, @elemType, @elemStereotype, @artifactGuid, @artifactName, @artifactPath ) " ; using (SQLiteCommand command2 = conn.CreateCommand()) { SQLiteParameter[] parameters = new SQLiteParameter[] { new SQLiteParameter("@elemGuid", elem.guid) , new SQLiteParameter("@elemName", elem.name) , new SQLiteParameter("@elemAlias", elem.alias) , new SQLiteParameter("@elemType", elem.eaType) , new SQLiteParameter("@elemStereotype", elem.stereoType) , new SQLiteParameter("@artifactGuid", atf.guid) , new SQLiteParameter("@artifactName", atf.name) , new SQLiteParameter("@artifactPath", atf.pathName) }; command2.CommandText = sql; command2.Parameters.AddRange(parameters); command2.ExecuteNonQuery(); } }
/// <summary> /// Artifact XML (atf_${guid}.xml) を読み、ArtifactVO のインスタンスに値をセットする。 /// /// XML例: /// <artifacts targetProject='Logical' lastUpdated='2017/10/13 10:27:32' targetModel='Logical' > /// <artifact guid='{11EF4332-5CB7-4ecd-8E78-0E50A6E7D3E7}' name='共通設計モデル' path='/論理モデル/レイヤ別ビュー/フレームワーク_STEP3移管対象/' stereotype='fw.adesk_cmn' /> /// </artifacts> /// /// </summary> /// <returns>ArtifactVOのリスト</returns> public void readArtifactDesc(ArtifactVO artifact) { string target_dir = null; if (this.artifactsPath != null) { target_dir = this.artifactsPath; } else { throw new ArgumentException(); } string fileName = target_dir + "/" + "atf_" + artifact.guid.Substring(1, 36) + ".xml"; // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); // artifactノードに移動する XmlNode artifactNode = xmlDoc.SelectSingleNode("artifact"); if (artifactNode != null) { artifact.package = readRootPackage(artifactNode); } }
/// <summary> /// 詳細のCSVファイルを出力する(タグ付き値) /// </summary> /// <param name="atf"></param> /// <param name="elem"></param> /// <param name="tv"></param> /// <param name="sw"></param> private void outputChangedDetailTaggedValue(ArtifactVO atf, ElementVO elem, TaggedValueVO tv, StreamWriter sw) { sw.Write("\"" + atf.changed + "\""); sw.Write(",\"" + atf.guid + "\""); sw.Write(",\"" + filterDoubleQuote(atf.name) + "\""); sw.Write(",\"" + filterDoubleQuote(atf.pathName) + "\""); sw.Write(",\"" + elem.changed + "\""); sw.Write(",\"" + elem.guid + "\""); sw.Write(",\"" + filterDoubleQuote(elem.name) + "\""); sw.Write(",\"タグ\""); sw.Write(",\"" + tv.changed + "\""); sw.Write(",\"" + tv.guid + "\""); sw.Write(",\"" + filterDoubleQuote(tv.name) + "\""); if (tv.changed == 'D' || tv.changed == 'U') { sw.Write(",\"#taggedvalue_" + tv.guid.Substring(1, 36) + "_L.xml\""); } else { sw.Write(",\"\""); } if (tv.changed == 'C' || tv.changed == 'U') { sw.Write(",\"#taggedvalue_" + tv.guid.Substring(1, 36) + "_R.xml\""); } else { sw.Write(",\"\""); } sw.WriteLine(""); }
/// <summary> /// 指定された成果物ファイルを読み込み、読み取り結果のVOを返却する /// </summary> /// <param name="fileName"></param> /// <returns></returns> public ArtifactVO readArtifactFile(string fileName) { string target_dir = null; if (this.artifactsPath != null) { target_dir = this.artifactsPath; } else { throw new ArgumentException(); } string artifactFile = target_dir + @"\" + fileName; // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(artifactFile); // artifactノードに移動する XmlNode artifactNode = xmlDoc.SelectSingleNode("artifact"); if (artifactNode != null) { ArtifactVO retArtifact = readArtifactNode(artifactNode); retArtifact.package = readRootPackage(artifactNode); return(retArtifact); } else { return(null); } }
public void exportBehaviorText() { // 出力フォルダはプロジェクトファイルの配置パスとする string outputDir = ProjectSetting.getVO().projectPath; // 全成果物リストの読み込み string artifactDir = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath; ArtifactsVO allArtifacts = ArtifactsXmlReader.readAllArtifacts(artifactDir); // 成果物パッケージXMLファイル読み込み ArtifactXmlReader atfReader = new ArtifactXmlReader(artifactDir, true); for (int i = 0; i < allArtifacts.artifactList.Count; i++) { ArtifactVO atf = allArtifacts.artifactList[i]; // 成果物VOのPathNameより出力が必要と判断された場合 if (artifactPathNameIsValid(atf.pathName)) { // ルールに従い、GUIDから成果物ファイルの名称を取得 string artifactFileName = "atf_" + atf.guid.Substring(1, 36) + ".xml"; // 成果物ファイル名と出力フォルダを渡し、ふるまいテキストを出力させる outputIndexedBehaviorText(atfReader, artifactFileName, outputDir); Console.WriteLine("{0}:テキスト出力中 {1}", i + 1, artifactFileName); } } }
private void outputChangedDetailAttribute(ArtifactVO atf, ElementVO elem, AttributeVO attr, StreamWriter sw) { sw.Write("\"" + atf.changed + "\""); sw.Write(",\"" + atf.guid + "\""); sw.Write(",\"" + atf.name + "\""); sw.Write(",\"" + atf.pathName + "\""); sw.Write(",\"" + elem.changed + "\""); sw.Write(",\"" + elem.guid + "\""); sw.Write(",\"" + elem.name + "\""); sw.Write(",\"属性\""); sw.Write(",\"" + attr.changed + "\""); sw.Write(",\"" + attr.guid + "\""); sw.Write(",\"" + attr.name + "\""); if (attr.changed == 'D' || attr.changed == 'U') { sw.Write(",\"#attribute_" + attr.guid.Substring(1, 36) + "_L.xml\""); } else { sw.Write(",\"\""); } if (attr.changed == 'C' || attr.changed == 'U') { sw.Write(",\"#attribute_" + attr.guid.Substring(1, 36) + "_R.xml\""); } else { sw.Write(",\"\""); } sw.WriteLine(""); }
void ListView1MouseDoubleClick(object sender, MouseEventArgs e) { ElementSearchItem vo = (ElementSearchItem)(listView1.SelectedItems[0].Tag); MainForm parentForm = (MainForm)(this.Owner); ArtifactVO atfvo = parentForm.getArtifactByGuid(vo.artifactGuid); ElementVO targetElem = searchElementVoFromArtifact(atfvo, vo.elemGuid); parentForm.openNewElementForm(targetElem); }
/// <summary> /// GUIDにより成果物リストを検索し、成果物パネルをアクティベートする。 /// 主にクラス検索画面から要素編集画面を開くついでに呼び出される。 /// </summary> /// <param name="guid">成果物パッケージのGUID</param> /// <returns>成果物VO</returns> public ArtifactVO getArtifactByGuid(string guid) { TreeNode tn = null; treeNodeMap.TryGetValue(guid, out tn); ArtifactVO atfvo = (ArtifactVO)tn.Tag; return(activateArtifactPanel(atfvo)); }
/// <summary> /// 全成果物のマージ /// </summary> public void mergeAllArtifacts() { Int16 lCnt, rCnt; ArtifactVO lAtf, rAtf, outAtf; List <ArtifactVO> outList = new List <ArtifactVO>(); for (lCnt = 0, rCnt = 0; lCnt < fromArtifacts.Count || rCnt < toArtifacts.Count;) { lAtf = fromArtifacts[lCnt]; rAtf = toArtifacts[rCnt]; // GUID比較で一致した場合: 成果物のパッケージ内の内容比較に移行する if (compareArtifactGuid(lAtf, rAtf) == 0) { // 現在処理対象の成果物を保持する procArtifact = lAtf; outAtf = getAgreedContentsOfArtifact(lAtf, rAtf); if (outAtf.changed != ' ') { outList.Add(outAtf); } lCnt++; rCnt++; } else { // GUID比較で一致しなかった場合: L > R なら Rの追加、 R < L なら Lの削除 とみなす if (compareArtifactGuid(lAtf, rAtf) > 0) { // 現在処理対象の成果物を保持する procArtifact = rAtf; outAtf = rAtf; outAtf.changed = 'C'; setChangedToChilds(outAtf.package, 'C'); outList.Add(outAtf); rCnt++; } else { // 現在処理対象の成果物を保持する procArtifact = lAtf; outAtf = lAtf; outAtf.changed = 'D'; setChangedToChilds(outAtf.package, 'D'); outList.Add(outAtf); lCnt++; } } } this.outArtifacts = outList; }
private void outputChangedArtifactList(ArtifactVO atf, StreamWriter sw) { sw.Write(" <artifact "); sw.Write(" changed='" + atf.changed + "' "); sw.Write(" guid='" + atf.guid + "' "); sw.Write(" name='" + escapeXML(atf.name) + "' "); sw.Write(" path='" + escapeXML(atf.pathName) + "' "); sw.Write(" project='asw' "); sw.Write(" stereotype='" + atf.stereoType + "' "); sw.WriteLine("/>"); }
private void outputChangedDetailElement(ArtifactVO atf, ElementVO elem, StreamWriter sw) { foreach (AttributeVO a in elem.attributes) { outputChangedDetailAttribute(atf, elem, a, sw); } foreach (MethodVO m in elem.methods) { outputChangedDetailMethod(atf, elem, m, sw); } }
/// <summary> /// /// </summary> /// <param name="atfNode"></param> /// <returns></returns> public static ArtifactVO readArtifactNode(XmlNode atfNode) { // 成果物ノードを読み込んで vo を1件作成 ArtifactVO atf = new ArtifactVO(); // <artifact> ノードの属性から ArtifactVO のプロパティをセット foreach (XmlAttribute attr in atfNode.Attributes) { switch (attr.Name) { case "name": atf.name = attr.Value; break; case "guid": atf.guid = attr.Value; break; case "project": atf.projectName = attr.Value; break; case "stereotype": atf.stereoType = attr.Value; break; case "path": atf.pathName = attr.Value; break; case "changed": atf.changed = attr.Value[0]; break; } } // <artifact> の子ノードから ArtifactVO のプロパティをセット foreach (XmlNode atfChildNode in atfNode.ChildNodes) { switch (atfChildNode.Name) { case "pathName": atf.pathName = atfChildNode.InnerText; break; case "asciidocFilePath": atf.asciidocFilePath = atfChildNode.InnerText; break; } } return(atf); }
private void outputChangedSummaryPackage(ArtifactVO atf, PackageVO pkg, StreamWriter sw) { foreach (ElementVO e in pkg.elements) { outputChangedSummaryElement(atf, e, sw); } foreach (PackageVO p in pkg.childPackageList) { outputChangedSummaryPackage(atf, p, sw); } }
public List <ElementVO> readAllElements(ArtifactVO artifact, string project_dir) { string target_dir = null; if (this.projectPath != null) { target_dir = this.projectPath; } else { target_dir = ConfigurationManager.AppSettings["artifact_dir"]; } string fileName = target_dir + "/" + "atf_" + artifact.guid.Substring(1, 36) + ".xml"; // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); List <ElementVO> retList = new List <ElementVO>(); // elementノードを全て取得する XmlNodeList elemNodes = xmlDoc.SelectNodes("//element"); if (elemNodes != null) { foreach (XmlNode elemNode in elemNodes) { ElementVO elemvo = new ElementVO(); foreach (XmlAttribute attr in elemNode.Attributes) { switch (attr.Name) { case "name": elemvo.name = attr.Value; break; case "alias": elemvo.alias = attr.Value; break; case "type": elemvo.eaType = attr.Value; break; case "stereotype": elemvo.stereoType = attr.Value; break; case "guid": elemvo.guid = attr.Value; break; } } retList.Add(elemvo); } } return(retList); }
/// <summary> /// ツリービューのコンテキストメニュー-「この成果物をEAで選択」のクリック時イベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void FocusEAPackageToolStripMenuItemClick(object sender, EventArgs e) { TreeNode tn = treeView1.SelectedNode; ArtifactVO atf = (ArtifactVO)tn.Tag; EA.Repository repo = ProjectSetting.getVO().eaRepo; if (repo != null) { EA.Package pak = repo.GetPackageByGuid(atf.guid); repo.ShowInProjectView(pak); MessageBox.Show("EA上で成果物パッケージGUID=" + atf.guid + "を選択しました"); } }
/// <summary> /// 引数の成果物フォルダ内の要素のふるまいをインサートする /// </summary> /// <param name="atf"></param> private void insertBehaviorsInArtifact(ArtifactVO atf) { foreach (ElementVO elem in atf.getOwnElements()) { if (elem.eaType == "Class") { foreach (MethodVO mth in elem.methods) { // メソッド単位でのふるまいのインサート insertBehaviorsInMethod(elem, mth); } } } }
private ArtifactVO getAgreedContentsOfArtifact(ArtifactVO leftAtf, ArtifactVO rightAtf) { ArtifactVO outAtf = leftAtf; outAtf.package = getDisagreedPackage(leftAtf.package, rightAtf.package); if (outAtf.package == null) { outAtf.changed = ' '; } else { outAtf.changed = 'U'; } return(outAtf); }
private static string outputArtifactAsciidoc(ArtifactXmlReader atfReader, string artifactFile, string asciidocDir) { // ArtifactVO artifact = atfReader.readArtifactFile(artifactFile); ArtifactAsciidocWriter aaWriter = new ArtifactAsciidocWriter(artifact); string plainFileName = Path.GetFileNameWithoutExtension(artifactFile); string partGuid = artifact.guid.Substring(1, 8); string artifactFileName = "atf_" + filterSpecialChar(artifact.name) + "_" + partGuid + ".adoc"; aaWriter.writeFile(asciidocDir + "\\" + artifactFileName); return(artifactFileName); }
/// <summary> /// 引数の成果物フォルダ内の要素を全て要素テーブルに書き込み /// </summary> /// <param name="atf">成果物フォルダ</param> private void insertElementsInArtifact(ArtifactVO atf) { foreach (ElementVO elem in atf.getOwnElements()) { insertElementTable(atf, elem); // Console.WriteLine("insert element : " + elementRecCount + " records." ); if ((elementRecCount + 1) % 1000 == 0 && elementRecCount > 0) { Console.Write("."); transaction.Commit(); transaction = conn.BeginTransaction(); } elementRecCount++; } }
/// <summary> /// 要素リストを受け、要素のノートと操作のふるまいをテキスト出力する。 /// テキスト解析に使用する。 /// </summary> /// <param name="atf">対象成果物VO</param> /// <param name="elements">要素の</param> /// <param name="sw"></param> private void retrieveElementsInArtifact(ArtifactVO atf, StreamWriter sw) { foreach (ElementVO elem in atf.getOwnElements()) { if (elem.methods != null) { foreach (MethodVO mth in elem.methods) { List <BehaviorChunk> chunks = behaviorParser.parseBehavior(mth); foreach (BehaviorChunk cnk in chunks) { writeChunkLine(cnk, sw); } } } } }