高度な利用
APIのより高度な利用方法をご紹介します。
XML入出力
XML入出力機能は、astah* professionalでサポートしています。
XML入出力を astah* API から行うには、プロジェクトを設定されたProjectAccessorから下記メソッドを使用します。
| 機能 | メソッド |
|---|---|
| 出力 | exportXMI(String fileName) |
| 入力 | importXMI(String projectName) importXMI(String projectName, boolean isIgnoreModelVersion) |
参照プロジェクト
参照プロジェクト機能は、astah* professionalでサポートしています。
参照プロジェクトの設定や更新等を astah* API から行うには、プロジェクトを設定されたProjectAccessorから下記メソッドを使用します。
参照プロジェクトの使用用途や使用法については下記をご覧ください。
簡単マージ
プロジェクトのマージ機能は、astah* professionalでサポートしています。
プロジェクトのマージを astah* API から行うには、プロジェクトを設定されたProjectAccessorからProjectAccessor#easyMerge(String path, boolean isKeepBase)を使用します。
プロジェクトの言語情報
プロジェクトの言語情報の詳細については、プロパティビュー:プログラミング言語の設定をご覧ください。
プロジェクトの言語情報一覧
プロジェクトモデル(IModel)は言語情報の設定の有無をタグ付き値で保持します。
モデルからタグ付き値を取得する方法についてはこちらをご覧ください。
| 言語 | 項目 | タグ付き値 |
|---|---|---|
| Java | Javaプロジェクト | [キー] jude.profile.java [値] true/false |
| C# | C#プロジェクト | [キー] jude.profile.c_sharp [値] true/false |
| C++ | C++プロジェクト | [キー] jude.profile.c_plus [値] true/false |
プロジェクトの言語情報設定
プロジェクト言語情報の設定は、BasicModelEditorを使用して行います。
| 言語 | メソッド |
|---|---|
| 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 {
modelEditor.setLanguageCSharp(project, doApply);
}Java、C++、C#の判定(クラス、属性、操作)
astah*のクラス、属性、操作のプロパティビューの言語タブにJava、C++、C#のチェックボックスがあります。

例えば、クラスのプロパティビューの言語タブでjavaのチェックボックスがONの場合、クラスに”Java Class”のステレオタイプが設定されます。 (ダイアグラムエディタやプロパティビューのステレオタイプには表示されません。)
Java
| モデル | ステレオタイプ |
|---|---|
| クラス(IClass) | Java Class |
| 属性(IAttribute) | Java Attribute |
| 操作(IOperation) | Java Method |
C
| モデル | ステレオタイプ |
|---|---|
| クラス(IClass) | C# Class |
| 属性(IAttribute) | C# Attribute |
| 操作(IOperation) | C# Method |
C++
| モデル | ステレオタイプ |
|---|---|
| クラス(IClass) | C++ Class |
| 属性(IAttribute) | C++ Attribute |
| 操作(IOperation) | C++ Method |
クラス、属性、操作の言語情報一覧
astah*のクラス、属性、操作のプロパティビューの言語タブに表示される設定項目は、各モデルのタグ付き値、ステレオタイプ、モデルの属性のいずれかに設定されます。 対象となるモデル: クラス(IClass)、属性(IAttribute)、操作(IOperation)
Java
| 項目 | ステレオタイプ | 付加されるモデル |
|---|---|---|
<<enum>> |
<<enum>> |
クラス(IClass) |
<<enum constant>> |
<<enum constant>> |
属性(IAttribute) |
| 項目 | タグ付き値 | 付加されるモデル |
|---|---|---|
| annotations | [キー] jude.java.annotations [値] 任意 |
クラス(IClass) 属性(IAttribute) 操作(IOperation) |
| @interface | [キー] jude.java.atmark_interface [値] true/false |
クラス(IClass) |
| strictfp | [キー] jude.java.strictfp [値] true/false |
クラス(IClass) 操作(IOperation) |
| transient | [キー] jude.java.transient [値] true/false |
属性(IAttribute) |
| volatile | [キー] jude.java.volatile [値] true/false |
属性(IAttribute) |
| synchronized | [キー] jude.java.synchronized [値] true/false |
操作(IOperation) |
| native | [キー] jude.java.native [値] true/false |
操作(IOperation) |
| 項目 | モデルの属性 | 付加されるモデル |
|---|---|---|
| [クラス]final | IClass.isLeaf() | クラス(IClass) |
| [属性]final | IAttribute.isChangeable() | 属性(IAttribute) |
| [操作]final | IClass.isLeaf() | 操作(IOperation) |
C
| 項目 | ステレオタイプ | タグ付き値 | 付加されるモデル |
|---|---|---|---|
<<delegate>> |
<<delegate>> |
- | クラス(IClass) |
<<struct>> |
<<struct>> |
- | クラス(IClass) |
<<enum>> |
<<enum>> |
- | クラス(IClass) |
| attributes | - | [キー] jude.c_sharp.attributes [値] 任意 |
クラス(IClass) 属性(IAttribute) 操作(IOperation) |
| sealed | - | [キー] jude.c_sharp.sealed [値] true/false |
クラス(IClass) |
| static | - | [キー] jude.c_sharp.static [値] true/false |
クラス(IClass) |
| internal | - | [キー] jude.c_sharp.internal [値] true/false |
クラス(IClass) 属性(IAttribute) 操作(IOperation) |
<<property>> |
<<property>> |
- | 属性(IAttribute) |
<<property>> get |
- | [キー] jude.c_sharp.property_get [値] true/false |
属性(IAttribute) |
<<property>> set |
- | [キー] jude.c_sharp.property_set [値] true/false |
属性(IAttribute) |
<<enum constant>> |
<<enum constant>> |
- | 属性(IAttribute) |
| const | - | [キー] jude.c_sharp.const [値] true/false |
属性(IAttribute) |
| volatile | - | [キー] jude.c_sharp.volatile [値] true/false |
属性(IAttribute) |
<<event>> |
<<event>> |
- | 操作(IOperation) |
<<event>> add |
- | [キー] jude.c_sharp.event_add [値] true/false |
操作(IOperation) |
<<event>> remove |
- | [キー] jude.c_sharp.event_remove [値] true/false |
操作(IOperation) |
<<indexer>> |
<<indexer>> |
- | 操作(IOperation) |
<<indexer>> get |
- | [キー] jude.c_sharp.indexer_get [値] true/false |
操作(IOperation) |
<<indexer>> set |
- | [キー] jude.c_sharp.indexer_set [値] true/false |
操作(IOperation) |
| extern | - | [キー] jude.c_sharp.extern [値] true/false |
操作(IOperation) |
| override | - | [キー] jude.c_sharp.override [値] true/false |
操作(IOperation) |
| sealed | - | [キー] jude.c_sharp.sealed [値] true/false |
操作(IOperation) |
| unsafe | - | [キー] jude.c_sharp.unsafe [値] true/false |
操作(IOperation) |
| virtual | - | [キー] jude.c_sharp.virtual [値] true/false |
操作(IOperation) |
| extension method | - | [キー] jude.c_sharp.extension_method [値] true/false |
操作(IOperation) |
| 項目 | モデルの属性 | 付加されるモデル |
|---|---|---|
| readonly | IAttribute#isChangeable() | 属性(IAttribute) |
C++
| 項目 | タグ付き値 | モデルの属性 |
|---|---|---|
| 型修飾子 | [キー] type_modifier [値] 文字列 |
ITemplateBinding#getActualParameterTypeModifier() IElement#getTypeModifier() |
| 項目 | ステレオタイプ | 付加されるモデル |
|---|---|---|
<<enum>> |
<<enum>> |
クラス(IClass) |
<<struct>> |
<<struct>> |
クラス(IClass) |
<<union>> |
<<union>> |
クラス(IClass) |
<<enum constant>> |
<<enum constant>> |
属性(IAttribute) |
| 項目 | タグ付き値 | 付加されるモデル |
|---|---|---|
| const | [キー] jude.c_plus.const [値] true/false |
属性(IAttribute)、操作(IOperation) |
| mutable | [キー] jude.c_plus.mutable [値] true/false |
属性(IAttribute) |
| volatile | [キー] jude.c_plus.volatile [値] true/false |
属性(IAttribute) |
| friend | [キー] jude.c_plus.friend [値] true/false |
操作(IOperation) |
| explicit | [キー] jude.c_plus.explicit [値] true/false |
操作(IOperation) |
| inline | [キー] jude.c_plus.inline [値] true/false |
操作(IOperation) |
| virtual | [キー] jude.c_plus.virtual [値] true/false |
操作(IOperation) |