Creating models
Please refer to Astah API JavaDoc for details of Interfaces and methods.
Creating models is supported only in Astah Professional edition.
1. Transaction Operation
Transaction operation is required when creating models via Astah API.
2. Example - creating models in Class Diagram
Create one package, two classes inside of it and associations between these two classes
public class APIForEditingModelsSample { public static void main(String[] args) { try { System.out.println("Creating new project..."); // Create a project and get a root model ProjectAccessor prjAccessor = AstahAPI.getAstahAPI().getProjectAccessor(); prjAccessor.create("./SampleModel.asta"); IModel project = prjAccessor.getProject(); System.out.println("Creating new elements in the project..."); // Begin transaction when creating or editing models TransactionManager.beginTransaction(); // Get model editor to create models in a class diagram BasicModelEditor basicModelEditor = ModelEditorFactory.getBasicModelEditor(); // Create a package IPackage packageA = basicModelEditor.createPackage(project, "PackageA"); // Create a class in the specified package IClass classA = basicModelEditor.createClass(packageA, "ClassA"); // Add a definition to the class classA.setDefinition("Definition of ClassA"); // Add an attribute to the class basicModelEditor.createAttribute(classA, "attribute0", "int"); // Add an operation to the class basicModelEditor.createOperation(classA, "operation0", "void"); // Create a class in the specified package IClass classB = basicModelEditor.createClass(packageA, "ClassB"); // Add an association between classes basicModelEditor.createAssociation(classA, classB, "association name", "classA end", "classB end"); // End transaction TransactionManager.endTransaction(); // Save project prjAccessor.save(); // Close project 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) { // Abort transaction TransactionManager.abortTransaction(); // Get an exception message System.err.println(e.getMessage()); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Throwable e) { e.printStackTrace(); } } }
Interface to create diagrams
Diagram | Interface to create diagrams |
---|---|
Class Diagram | BasicModelEditor |
UseCase Diagram | UseCaseModelEditor |
Statemachine Diagram | StateMachineDiagramEditor |
Activity Diagram | ActivityDiagramEditor |
Sequence Diagram | SequenceModelEditor |
Composite Structure Diagram | CompositeStructureModelEditor |
ER Diagram | ERModelEditor |
Mind Map | MindmapEditor |
Requirement Diagram | BasicModelEditor |