ライフラインを取得する
シーケンス図からライフラインを取得する
ライフラインを取得するにはISequenceDiagram
オブジェクトのLifelines
プロパティを用います。
public void GetLifelines(ICommandContext c, ICommandParams p)
{
ISequenceDiagram sequenceDiagram = c.App.Workspace.CurrentEditor as ISequenceDiagram;
if (sequenceDiagram == null) return;
// ライフラインを取得します
ILifelineShapeCollection lifelines = sequenceDiagram.Lifelines;
var no = 1;
foreach (ILifelineShape lifeline in lifelines)
{
c.App.Output.WriteLine("sample", $"{no}つ目のライフライン : {lifeline.Text}");
no++;
}
}
シーケンス図からライフラインのモデル情報を取得する
シーケンス図からライフラインのモデル情報を取得する場合、ます、ISequenceDiagram
オブジェクトのModel
プロパティでインタラクションモデルを取得します。取得したモデルをIInteraction
型にキャストした後、Lifelines
プロパティを用いてライフラインのモデル情報を取得します。
public void GetLifelineModels(ICommandContext c, ICommandParams p)
{
ISequenceDiagram sequenceDiagram = c.App.Workspace.CurrentEditor as ISequenceDiagram;
if (sequenceDiagram == null) return;
// 相互作用モデルを取得します
IInteraction interaction = sequenceDiagram.Model as IInteraction;
// ライフラインモデルを取得します
ILifelineCollection lifelineModels = interaction.Lifelines;
var no = 1;
foreach (ILifeline lifelineModel in lifelineModels)
{
c.App.Output.WriteLine("sample", $"{no}つ目のライフラインモデル : {lifelineModel.Name}");
no++;
}
}