astah*

Japanese | English
Home 機能 [共通] astah* API の使い方

[共通] astah* API の使い方、サンプルプログラム

Eメール 印刷

astah* APIを用いることで、astah* のモデル要素を取得して、アプリケーションソフトウェア上で利用できます。


例1) プロジェクトを表す(起点となる)モデルの取得

astahプロジェクトファイルの全てのモデル情報は、プロジェクトを表すモデル(以下、プロジェクトモデル)の下にツリー状に存在します。 まず、ProjectAccessorオブジェクトを取得して、astahプロジェクトファイルを開き、プロジェクトモデル(IModelクラスのオブジェクト)を取得します。
ClassDefinitionBuilder.java

// プロジェクトを開いて、プロジェクトモデルを取得する
ProjectAccessor prjAccessor = ProjectAccessorFactory.getProjectAccessor();
prjAccessor.open(inputFile);
IModel iModel = prjAccessor.getProject();

例2) パッケージ配下のパッケージを、再帰的に全て取得

ここでは、パッケージ(IPackage)を継承するサブシステムやモデルも、パッケージに含めます。 パッケージ(IPackage)の直下にある全てのモデル要素を、メソッドgetOwnedElements()の利用により 配列として取得し、その中からパッケージだけを抽出します。また、取得したパッケージに対しても 同様の処理を行い、再帰的に全てのパッケージを取得します。
ClassDefinitionBuilder.java

/**
* 指定パッケージ配下のパッケージを、再帰的に全て取得する。
*
* @param iPackage 指定パッケージ
* @param iPackages パッケージ一覧を格納するリスト
* @return パッケージ一覧を格納したリスト
*/
private List getPackages(IPackage iPackage, List iPackages) {
INamedElement[] iNamedElements = iPackage.getOwnedElements();
for (int i = 0; i < iNamedElements.length; i++) {
INamedElement iNamedElement = iNamedElements[i];>
if (iNamedElement instanceof IPackage) {
iPackages.add(iNamedElement);
getPackages((IPackage)iNamedElement, iPackages);
}
}
return iPackages;
}

例3) クラスのフルパス名の取得

クラス(IClass)を含め INamedElementのサブクラスの場合、メソッドgetName()を用いることで名前を取得できます。 さらに、自分を所有するモデル要素を所得するメソッド getOwner()を組み合わせることによって、プロジェクトモデルからのフルパス名を取得できます。
ClassDefinitionBuilder.java

/**
* クラスの名前をフルパスで取得する
*
* @param iClass
* クラス
* @return クラス名(フルパス)
*/
private String getFullName(IClass iClass) {
StringBuffer sb = new StringBuffer();
IElement owner = iClass.getOwner();
while (owner != null && owner instanceof INamedElement && owner.getOwner() != null) {
sb.insert(0, ((INamedElement) owner).getName() + "::");
owner = owner.getOwner();
}
sb.append(iClass.getName());
return sb.toString();
}

APIサンプルプログラム

使用できるエディション: astah* professional、astah* UML、astah* community
(エディションによって範囲が異なります。)

astah* APIは、astah* のモデルデータを活用するアプリケーションソフトウェアを開発するためのJavaインターフェース群です。 astah* APIを利用したアプリケーションソフトウェアを実行するには、astah* を実行できる環境が必要です。

APIの機能など詳細は、以下のページもご覧ください。
astah* API 概要
分析設計モデルをわがままに活用しよう JUDE API入門(翔泳社 Code Zine 掲載)(旧製品のJUDEの情報です。)

サンプルプログラム
astah* インストールフォルダ\api\sample 配下に、サンプルプログラムが含まれています。
簡単な編集・読み込みのサンプルは、astah* API の使用例を示しています。
(クリックするとコミュニティサイトへ移動するリンクや図があります。)
*1  バージョン 6.6.3までは、DBリバース、C#リバース、C++リバースも含まれています。
      バージョン 6.6.4より、DBリバース、C#リバース、C++リバースはプラグインにて提供しています。

サンプルプログラムの名称astah* professonalastah* UMLastah* community
CSVエクスポート
DBリバース *1
C#リバース *1
C++リバース *1
簡単な編集
簡単な読み込み

動作環境

astah* API 参照・編集機能 : astah* professional、astah* UML
astah* API 参照機能 : astah* community
Javaは、astah* のシステム要件に基づきます。

詳しい使い方は、astah* API ユーザーガイドをご覧ください。

 
twitter-a はてなブックマークに登録 Yahoo!ブックマークに登録