メインコンテンツまでスキップ

ライフラインを取得する

シーケンス図からライフラインを取得する

ライフラインを取得するには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++;
}
}