プロジェクトへのアクセス

astah* System Safetyの各ファセットを参照、編集するためには、まずプロジェクトにアクセスすることが必要です。

プロジェクトへアクセスする

プロジェクトへアクセスするにはProjectAccessorを使用します。
ProjectAccessorを使用することで、下記のような操作が可能です。

  • プロジェクトを作成・開く・閉じる・保存
  • プロジェクトに変更の有無があるか確認
  • プロジェクトの開閉確認
  • プロジェクトの各種情報取得

astah* APIでは、一度にひとつのプロジェクトのみ処理することが可能です。
複数のプロジェクトを処理する場合は、元のプロジェクトを閉じてから、次のプロジェクトを開くようにしてください。

ProjectAccessorに登録したプロジェクトは必ず閉じてから終了してください。

以下に、ProjectAccessorの使用例を示します(例外処理は省略しています)。

// プロジェクトアクセサの取得
ProjectAccessor projectAccessor = AstahAPI.getAstahAPI().getProjectAccessor();

try {

    // プロジェクトアクセサにプロジェクトを登録
    if (new File(PROJECT_PATH).exists()) {
        System.out.println(PROJECT_PATH + " を開きます");
        projectAccessor.open(PROJECT_PATH);
    } else {
        System.out.println(PROJECT_PATH + " にプロジェクトを作成します");
        projectAccessor.create(PROJECT_PATH);
        projectAccessor.save();
    }
    
    // 参照(省略)
    
    // 編集(省略)
    
    // 保存
    if (!projectAccessor.isProjectModified()) {
        return;
    }
    System.out.println("変更を保存します");
    projectAccessor.save();

} finally {

    // プロジェクトを閉じる
    projectAccessor.close();
    System.out.println("プロジェクトを閉じました");

}

ファセットを取得する

SysMLやGSN,STAMP/STPAなどの記法は、異なるファセットによって管理されます。 各ファセット内の全モデル、プレゼンテーションは、ファセットを表すモデル(以下、ファセットモデル)の下に存在します。
ファセットモデルは、ProjectAccessorからgetFacets()を用いて取得します。

public List<IFacet> getProjectFacets(ProjectAccessor projectAccessor) throws ProjectNotFoundException {
    return projectAccessor.getFacets();
}