こんにちは、astah*開発チームのりりぃです。
皆さんスクリプトエディタはお使いいただいていますか?
インストールの手間なく便利に使っていただきたくてastah* 7.2からインストーラーに同梱しました。
スクリプトエディタの説明には「astah*のAPI」だとか「スクリプト言語」だとか難しそうな言葉が並んでいますが、全然身構えることないです。この記事を読みながら、ぜひスクリプトエディタに触れてみてください。
もし同梱されていない製品をお使いでしたら、まずはインストールしてくださいね。
※この記事の内容は Java8 で動作するastah*(professional / UML / community のバージョン7.0以降、SysML のバージョン1.4以降、GSN のバージョン1.1以降)が対象です。
また、記事内のリンクは Java8 や、astah* professional / UML の現在の最新バージョンである7.2向けのものとなります。
簡単に使ってみる
では早速ですが、実行結果にHello World!
と表示してみます。
astah*を起動してスクリプトエディタを表示し、エディタ部分にprint("Hello World!")
と書いて実行ボタンを押してみてください。printメソッドを使うと文字列が実行結果に表示されます。
文字列の部分を変数として抽出しても使えます。
関数も使えます。3行目から6行目がprintMessage関数です。
関数に引数を渡すこともできます。
配列も使えます。
if文やfor文を用いて配列の中身を自在に書き出すこともできます。
このようにスクリプトエディタ ではJavaScriptで記述して実行することができます。上の書き方は一例ですので、 もっと良い書き方があるかもしれません。
Javaのクラスを使ってみる
ユーザーホームのパスを表示したいので System クラスを使ってみます。
getProperty(String key) にuser.home
というキーを渡すとユーザーホームのパスを取得できます(他のキーについても getProperties() に詳しく書いてありますね)。
Java.type('java.lang.System')
と書くと System クラスを利用することができます。
astah* API を使ってみる
astah* にはastah*を操作するための astah* API が用意されています。
astah* を起動せずにプロジェクトの内容を書き換えたり、プロジェクト内のモデルの内容を書き出したりなど様々なことが行えるのですが、 スクリプトエディタ でも利用できるAPIがたくさんあります。
定義済み変数「astah」を使う
スクリプトエディタ 内で astah* API の ProjectAccessorをastah
として定義してあります。
定義済み変数「astah」を使ってみましょう。
getAstahVersion()を実行するとastah*のバージョンを取得することができます。
ProjectAccessor にはほかにもいろんな操作があるのでいろんな情報を得られますよ( クラス図 )。
未定義のクラスを使う
定義されていないクラスはJavaのクラスを使ってみるの方法で使用することができます。
※ ここからはエディションが professional / UML / community である場合のみ実行できる内容になりますが適宜読み替えてください
下準備としてastah*で新規プロジェクトを作成し、適当なクラスをいくつか作成しておきましょう。
定義されたastah変数(ProjectAccessor)のfindElements(Class elementKind)を用いてプロジェクト内にあるクラスをすべて検索します。
このメソッドを利用するためには引数にクラスの elementKind を渡す必要があります。
astah* API 利用ガイドの対応モデル一覧を見るとクラスのモデルは com.change_vision.jude.api.inf.model.IClass であることがわかります(ただしこのページを見てわかるように、インタフェースなども入ります)。
階層等を無視してクラスを検索することができました。
サンプルプログラムを動かしてみる
もっと高度なことをされたい方は スクリプトエディタで、すぐに使えるサンプル集を見たり動かしたりして研究してみてください。
どんな感じのことができるのかなんとなくわかると思います。
来月になったら続きの記事を書きたいなと思っています。もっと難しいこともやってみましょう。それではまた!
共有しました
いいねいいね