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

astah*のモデルを参照、編集するためには、まずプロジェクトにアクセスすることが必要です。

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

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

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

以下に、ProjectAccessorの使用例を示します。(例外処理は省略しています)
なお、ProjectAccessorに登録したプロジェクトは必ず閉じてから終了してください。
また、 astah* APIでは、一度にひとつのプロジェクトのみ処理することが可能です。複数のプロジェクトを処理する場合は、元のプロジェクトを閉じてから、次のプロジェクトを開くようにしてください。

// プロジェクトアクセサの取得
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 ("community".equals(projectAccessor.getAstahEdition())) {
        System.out.println("コミュニティエディションではプロジェクトを編集できません");
        return;
    }
    
    // 参照(省略)
    
    // 編集(省略)
    
    // 保存
    if (!projectAccessor.isProjectModified()) {
        return;
    }
    System.out.println("変更を保存します");
    projectAccessor.save();

} finally {

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

}

プロジェクトモデルを取得する

astah*プロジェクト内の全モデル、プレゼンテーションは、プロジェクトを表すモデル(以下、プロジェクトモデル)の下に存在します。
プロジェクトモデルは、ProjectAccessorからgetProject()を用いて取得します。

public IModel getProjectModel(ProjectAccessor projectAccessor) throws ProjectNotFoundException {
    return projectAccessor.getProject();
}