Advanced use
Here’re some advanced uses with Astah API.
XML Input/Output
XML Input/Output is supported only in Astah Professional.
Use ProjectAccessor to input/output XML Input/Output from the API. But first you need to register the project in ProjectAccessor (Reference: Accessing the project).
Function | Method |
---|---|
Output | exportXMI(String fileName) |
Input | importXMI(String projectName) importXMI(String projectName, boolean isIgnoreModelVersion) |
Reference Model Management
Reference Model Management is supported only in Astah Professional.
To set or update referenced projects with API, call ProjectAccessor’s method.
Function | Method |
---|---|
Add | addReferenceProject(String path) |
Update | updateReferenceProject(String path) |
Get Status | getReferenceProjectStatus(String path) |
Get Path | getReferenceProjectPaths() |
Change Path | changeReferenceProject(String fromPath, String toPath) |
Clear | clearReferenceProject(String path) |
Remove | removeReferenceProject(String path) |
Easy Merge
Easy Merge is supported only in Astah Professional.
To run Easy Merge from API, call ProjectAccessor#easyMerge(String path, boolean isKeepBase) method.
Programming Language
You can set programming languages for each project in Astah. (See how)
Get language information
Language information is stored as a TaggedValue in eachProject model (IModel) if any is specified.
So you can get the language information by TaggedValues.
Language | Item | Tagged Value |
---|---|---|
Java | Java Project | [Key] jude.profile.java [Value] true/false |
C# | C# Project | [Key] jude.profile.c_sharp [Value] true/false |
C++ | C++ Project | [Key] jude.profile.c_plus [Value] true/false |
Set language
You can set language information with BasicModelEditor.
Language | Method |
---|---|
Java | setLanguageJava(IModel project, boolean doApply) |
C# | setLanguageCSharp(IModel project, boolean doApply) |
C++ | setLanguageCPlus(IModel project, boolean doApply) |
public void setLanguageCSharp(BasicModelEditor modelEditor, IModel project, boolean doApply)
throws InvalidEditingException {
.setLanguageCSharp(project, doApply);
modelEditor}
Find out language info1
In Astah, you can check Java, C++ or C# for each Class, Attribute and Operation.
When any language is checked, it is added to the model as a stereotype internally. So by getting the stereotype, you can see which language property is set to each Class, Attribute and Operation.
Java
Model | Stereotype |
---|---|
Class (IClass) | Java Class |
Attribute (IAttribute) | Java Attribute |
Operation (IOperation) | Java Method |
C
Model | Stereotype |
---|---|
Class (IClass) | C# Class |
Attribute (IAttribute) | C# Attribute |
Operation (IOperation) | C# Method |
C++
Model | Stereotype |
---|---|
Class (IClass) | C++ Class |
Attribute (IAttribute) | C++ Attribute |
Operation (IOperation) | C++ Method |
Find out language info2
When you add any language-related properties in [Language] tab to Classes, Attributes and Operations, the information will be added to these models as TaggedValue, Stereotype or attributes.
Target : Class (IClass), Attribute (IAttribute), Operation (IOperation)
Java
Item | Stereotype | Model |
---|---|---|
<<enum>> |
<<enum>> |
Class (IClass) |
<<enum constant>> |
<<enum constant>> |
Attribute (IAttribute) |
Item | Tagged Value | Model |
---|---|---|
annotations | [Key] jude.java.annotations [Value] Optional |
Class (IClass) Attribute (IAttribute) Operation (IOperation) |
@interface | [Key] jude.java.atmark_interface [Value] true/false |
Class (IClass) |
strictfp | [Key] jude.java.strictfp [Value] true/false |
Class (IClass) Operation (IOperation) |
transient | [Key] jude.java.transient [Value] true/false |
Attribute (IAttribute) |
volatile | [Key] jude.java.volatile [Value] true/false |
Attribute (IAttribute) |
synchronized | [Key] jude.java.synchronized [Value] true/false |
Operation (IOperation) |
native | [Key] jude.java.native [Value] true/false |
Operation (IOperation) |
Item | Model Attribute | Model |
---|---|---|
[Class] final | IClass.isLeaf() | Class (IClass) |
[Attribute] final | IAttribute.isChangeable() | Attribute (IAttribute) |
[Operation] final | IClass.isLeaf() | Operation (IOperation) |
C
Item | Stereotype | Tagged Value | Model |
---|---|---|---|
<<delegate>> |
<<delegate>> |
- | Class (IClass) |
<<struct>> |
<<struct>> |
- | Class (IClass) |
<<enum>> |
<<enum>> |
- | Class (IClass) |
attributes | - | [Key] jude.c_sharp.attributes [Value] Optional |
Class (IClass) Attribute (IAttribute) Operation (IOperation) |
sealed | - | [Key] jude.c_sharp.sealed [Value] true/false |
Class (IClass) |
static | - | [Key] jude.c_sharp.static [Value] true/false |
Class (IClass) |
internal | - | [Key] jude.c_sharp.internal [Value] true/false |
Class (IClass) Attribute (IAttribute) Operation (IOperation) |
<<property>> |
<<property>> |
- | Attribute (IAttribute) |
<<property>> get |
- | [Key] jude.c_sharp.property_get [Value] true/false |
Attribute (IAttribute) |
<<property>> set |
- | [Key] jude.c_sharp.property_set [Value] true/false |
Attribute (IAttribute) |
<<enum constant>> |
<<enum constant>> |
- | Attribute (IAttribute) |
const | - | [Key] jude.c_sharp.const [Value] true/false |
Attribute (IAttribute) |
volatile | - | [Key] jude.c_sharp.volatile [Value] true/false |
Attribute (IAttribute) |
<<event>> |
<<event>> |
- | Operation (IOperation) |
<<event>> add |
- | [Key] jude.c_sharp.event_add [Value] true/false |
Operation (IOperation) |
<<event>> remove |
- | [Key] jude.c_sharp.event_remove [Value] true/false |
Operation (IOperation) |
<<indexer>> |
<<indexer>> |
- | Operation (IOperation) |
<<indexer>> get |
- | [Key] jude.c_sharp.indexer_get [Value] true/false |
Operation (IOperation) |
<<indexer>> set |
- | [Key] jude.c_sharp.indexer_set [Value] true/false |
Operation (IOperation) |
extern | - | [Key] jude.c_sharp.extern [Value] true/false |
Operation (IOperation) |
override | - | [Key] jude.c_sharp.override [Value] true/false |
Operation (IOperation) |
sealed | - | [Key] jude.c_sharp.sealed [Value] true/false |
Operation (IOperation) |
unsafe | - | [Key] jude.c_sharp.unsafe [Value] true/false |
Operation (IOperation) |
virtual | - | [Key] jude.c_sharp.virtual [Value] true/false |
Operation (IOperation) |
extension method | - | [Key] jude.c_sharp.extension_method [Value] true/false |
Operation (IOperation) |
Item | Model Attribute | Model |
---|---|---|
readonly | IAttribute#isChangeable() | Attribute (IAttribute) |
C++
Item | Tagged Value | Model Attribute |
---|---|---|
Type Modifier | [Key] type_modifier [Value] Type Modifie String |
ITemplateBinding#getActualParameterTypeModifier() IElement#getTypeModifier() |
Item | Stereotype | Model |
---|---|---|
<<enum>> |
<<enum>> |
Class (IClass) |
<<struct>> |
<<struct>> |
Class (IClass) |
<<union>> |
<<union>> |
Class (IClass) |
<<enum constant>> |
<<enum constant>> |
Attribute (IAttribute) |
Item | Tagged Value | Model |
---|---|---|
const | [Key] jude.c_plus.const [Value] true/false |
Attribute (IAttribute), Operation (IOperation) |
mutable | [Key] jude.c_plus.mutable [Value] true/false |
Attribute (IAttribute) |
volatile | [Key] jude.c_plus.volatile [Value] true/false |
Attribute (IAttribute) |
friend | [Key] jude.c_plus.friend [Value] true/false |
Operation (IOperation) |
explicit | [Key] jude.c_plus.explicit [Value] true/false |
Operation (IOperation) |
inline | [Key] jude.c_plus.inline [Value] true/false |
Operation (IOperation) |
virtual | [Key] jude.c_plus.virtual [Value] true/false |
Operation (IOperation) |