フォーラム一覧 - トピック一覧 astah*への改善アイデア API シーケンス図の読み込みについて | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | トピック |
---|---|
yamazaki | 投稿日時: 2008-12-15 17:45 |
一人前 登録日: 2006-5-5 居住地: 投稿: 132 |
Re: API シーケンス図の読み込みについて eikichiさん、こんばんは。
JUDE APIのご利用、どうもありがとうございます。 引用:
シーケンス図の定義欄を取得したい場合は、次の方法をご利用ください。 ISequenceDiagram は INamedElementを継承しており、INamedElement の getDefinition で ISequenceDiagram の定義を取得できます。 > 1.ライフラインの「ベースクラス」に対するパッケージ ILifeLine の getBase() でベースクラスを取得できます。 ベースクラスはIElementを継承しており、IElement の getOwner で所属するパッケージを取得できます。 > 2.メッセージの「返り値変数」 残念ながら、メッセージの「返り値変数」を取得するAPIを提供していないため、 APIでメッセージの「返り値変数」を取得することはできません。 こちらはご要望としてお預かりしたいと思います。 シーケンス図の定義欄の位置を示す画像 ベースクラスのパッケージを取得するサンプルコードを 載せておきますので、どうぞお試しください。 import java.io.IOException; import com.change_vision.jude.api.inf.exception.LicenseNotFoundException; import com.change_vision.jude.api.inf.exception.NonCompatibleException; import com.change_vision.jude.api.inf.exception.ProjectLockedException; import com.change_vision.jude.api.inf.exception.ProjectNotFoundException; import com.change_vision.jude.api.inf.model.IClass; import com.change_vision.jude.api.inf.model.IDiagram; import com.change_vision.jude.api.inf.model.IElement; import com.change_vision.jude.api.inf.model.IInteraction; import com.change_vision.jude.api.inf.model.ILifeline; import com.change_vision.jude.api.inf.model.IMessage; import com.change_vision.jude.api.inf.model.IModel; import com.change_vision.jude.api.inf.model.INamedElement; import com.change_vision.jude.api.inf.model.ISequenceDiagram; import com.change_vision.jude.api.inf.project.ProjectAccessor; import com.change_vision.jude.api.inf.project.ProjectAccessorFactory; public class APIForReadingSequenceDiagramSample { public static void main(String[] args) { try { ProjectAccessor prjAccessor = ProjectAccessorFactory.getProjectAccessor(); prjAccessor.open("C:/sequenceDiagramSample.jude", true, false, true); IModel project = prjAccessor.getProject(); IDiagram[] iDiagrams = project.getDiagrams(); for (int i = 0; i < iDiagrams.length; i++) { if (iDiagrams[i] instanceof ISequenceDiagram) { ISequenceDiagram iSequenceDgm = (ISequenceDiagram) iDiagrams[i]; System.out.println("sequence diagram definition: " + iSequenceDgm.getDefinition()); IInteraction iInteraction = iSequenceDgm.getInteraction(); ILifeline[] iLifeLine = iInteraction.getLifelines(); for (int j = 0; j < iLifeLine.length; j++) { IClass baseClass = iLifeLine[j].getBase(); if (baseClass != null) { IElement owner = baseClass.getOwner(); if (owner instanceof INamedElement) { System.out.println("package of base class: " + ((INamedElement)owner).getName()); } } } IMessage[] iMessages = iInteraction.getMessages(); for (int j = 0; j < iMessages.length; j++) { System.out.println("return value of a message: " + iMessages[j].getReturnValue()); } } } prjAccessor.close(); } catch (LicenseNotFoundException e) { e.printStackTrace(); } catch (ProjectNotFoundException e) { e.printStackTrace(); } catch (ProjectLockedException e) { e.printStackTrace(); } catch (NonCompatibleException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Throwable e) { e.printStackTrace(); } } } |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
API シーケンス図の読み込みについて | ゲスト | 2008-12-15 0:13 |
» Re: API シーケンス図の読み込みについて | yamazaki | 2008-12-15 17:45 |
Re: API シーケンス図の読み込みについて | eikichi | 2008-12-15 23:13 |
投稿するにはまず登録を | |