# astah* API 利用ガイド

## 【図の作成/削除】

1. 各図の作成
2. 各図の削除

各インターフェース、メソッドの詳細についてはastah* API JavaDocをご覧ください。
astah* APIの図の作成/編集/削除機能は、astah* UML, professionalでサポートしています。

#### 【トランザクション操作】

図を作成/編集/削除する際、トランザクション操作が必要です。
トランザクション操作(モデル/図/プレゼンテーションの作成・編集・削除時)をご覧ください。

#### 【各図の作成】

・クラス図/オブジェクト図：ClassDiagramEditorのcreateClassDiagramメソッドを使用します
・ユースケース図：UseCaseDiagramEditorのcreateUseCaseDiagramメソッドを使用します
・ステートマシン図：StateMachineDiagramEditorのcreateStatemachineDiagramメソッドを使用します
・合成構造図：CompositeStructureDiagramEditorのcreateCompositeStructureDiagramメソッドを使用します
・ER図(professionalのみ)：ERDiagramEditorのcreateERDiagramメソッドを使用します
・マインドマップ：MindmapEditorのcreateMindmapDiagramメソッドを使用します

（例）クラス図/オブジェクト図の作成

    public IDiagram createClassDiagram(IModel project, String diagramName)
            throws InvalidUsingException, ClassNotFoundException {
        ProjectAccessor projectAccessor =  ProjectAccessorFactory.getProjectAccessor();
        ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
        try {
            TransactionManager.beginTransaction();
            IDiagram iClassDiagram = cde.createClassDiagram(project, diagramName);
            TransactionManager.endTransaction();
            return iClassDiagram;
        } catch (InvalidEditingException e) {
            e.printStackTrace();
            TransactionManager.abortTransaction();
        }
    }

#### 【各図の削除】

deleteメソッドで、図を指定してプロジェクトから削除します。
（例１）図の削除

    public void deleteDiagram(IDiagram diagram)
            throws ClassNotFoundException, InvalidUsingException {
        ProjectAccessor projectAccessor =  ProjectAccessorFactory.getProjectAccessor();
        ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
        try {
            TransactionManager.beginTransaction();
            cde.setDiagram(diagram);
            cde.deleteDiagram();
            TransactionManager.endTransaction();
        } catch (InvalidEditingException e) {
            e.printStackTrace();
            TransactionManager.abortTransaction();
        }
    }

（例２）図の削除

    public void deleteDiagram(IDiagram diagram)
            throws ClassNotFoundException, InvalidUsingException {
        ProjectAccessor projectAccessor =  ProjectAccessorFactory.getProjectAccessor();
        ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
        try {
            TransactionManager.beginTransaction();
            cde.delete(diagram);
            TransactionManager.endTransaction();
        } catch (InvalidEditingException e) {
            e.printStackTrace();
            TransactionManager.abortTransaction();
        }
    }

HOME