各インターフェース、メソッドの詳細についてはastah*
APIのJavaDocをご覧ください。
astah* APIのモデル作成/編集/削除機能は、astah* UML,
professionalでサポートしています。
public class APIForEditingModelsSample { public static void main(String[] args) { try { System.out.println("Creating new project..."); // プロジェクトを作成して、起点となるモデルを取得 ProjectAccessor prjAccessor = AstahAPI.getAstahAPI().getProjectAccessor(); prjAccessor.create("./SampleModel.asta"); IModel project = prjAccessor.getProject(); System.out.println("Creating new elements in the project..."); // クラスなどのモデル要素を作成または編集する場合、まとまり単位としてトランザクション操作が必要 TransactionManager.beginTransaction(); // クラス関連のモデル要素を作成するエディタを取得 BasicModelEditor basicModelEditor = ModelEditorFactory.getBasicModelEditor(); // パッケージを作成 IPackage packageA = basicModelEditor.createPackage(project, "PackageA"); // 指定のパッケージにクラスを作成 IClass classA = basicModelEditor.createClass(packageA, "ClassA"); // クラスの定義を追加 classA.setDefinition("Definition of ClassA"); // クラスに属性を追加 basicModelEditor.createAttribute(classA, "attribute0", "int"); // クラスに操作を追加 basicModelEditor.createOperation(classA, "operation0", "void"); // 指定のパッケージにクラスを作成 IClass classB = basicModelEditor.createClass(packageA, "ClassB"); // クラス間の関連を作成 basicModelEditor.createAssociation(classA, classB, "association name", "classA end", "classB end"); // トランザクションの終了 TransactionManager.endTransaction(); // プロジェクトを保存 prjAccessor.save(); // プロジェクトを閉じる prjAccessor.close(); System.out.println("Finished"); } catch (LicenseNotFoundException e) { e.printStackTrace(); } catch (ProjectNotFoundException e) { e.printStackTrace(); } catch (ProjectLockedException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InvalidEditingException e) { // トランザクションの放棄 TransactionManager.abortTransaction(); // 不正編集の例外メッセージを取得 System.err.println(e.getMessage()); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Throwable e) { e.printStackTrace(); } } } |