高度な利用

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から下記メソッドを使用します。

機能 メソッド
追加 addReferenceProject(String path)
更新 updateReferenceProject(String path)
状態の取得 getReferenceProjectStatus(String path)
パスの取得 getReferenceProjectPaths()
パスの変更 changeReferenceProject(String fromPath, String toPath)
解除 clearReferenceProject(String path)
削除 removeReferenceProject(String path)

参照プロジェクトの使用用途や使用法については下記をご覧ください。

簡単マージ

プロジェクトのマージ機能は、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

例えば、クラスのプロパティビューの言語タブで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)