goo blog サービス終了のお知らせ 

ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

DMDL EditorX Operatorの使用箇所の検索

2018-12-21 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2018の21日目、拙作DMDL EditorXの機能の紹介です。

DMDL EditorXで最もよく使う機能のひとつが、Operatorのメソッドの使用箇所を検索する機能です。
通常のEclipseでもメソッドの使用箇所を検索する機能がありますが、Operatorの場合、JobFlowやFlowPartから実際に呼び出しているのはOperatorFactoryのメソッドなので、Eclipseのメソッド検索機能ではOperatorからは検索できません。

Operatorクラスのメソッドを右クリックし、「Asakusa DSL References」→「Search in src/main(Flow)」で使用箇所を検索できます。
(ちなみに「Search in src/main(Operator)」でも検索できます。こちらは本来はDMDL(のデータモデルやプロパティー)を使用しているOperatorを検索するものですが、Operatorのメソッドから検索しようとした場合はFlowを検索します。いわばお節介機能ですが、どのメニューを選ぶか考えなくていいので重宝しています(爆))

なお、たまにOperatorに定義したメソッドをFlowから呼び出し忘れることがあるので、使用されていないOperatorメソッドを抽出する機能があると便利かなーと思わなくもないのですが、実行時間が結構かかりそうなのでどうしたものかと…。


JobFlow・FlowPart作成・変更ウィザード

2018-12-19 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2018の19日目、拙作DMDL EditorXの機能の紹介です。

これは常にウィザードで作成・変更するというクラスが、JobFlow・FlowPartです。
コンストラクターとフィールドを手で直すのは面倒なので^^;

新規作成はツールバーの「New JobFlow class」「New FlowPart class」から。
変更はJobFlow・FlowPartクラスで右クリックしてポップアップメニューを出し、「Source」→「Modify JobFlow/FlowPart Field」か、「DMDL EditorX」→「Modify JobFlow/FlowPart Field」で。

今年はFlowPartの変更ウィザードに値引数ページを加えました。
FlowPartの値引数、意外と使うんですよね。

ちなみに、変更ウィザードで変更すると、コンストラクターのソースのインデントが崩れます。これは、Eclipseのソースの整形機能で修正することを前提としています。
(ソースの整形、普通は自動的にやりますよね?)


DMDL EditorX @Keyの入力補完

2018-12-18 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2018の18日目、拙作DMDL EditorXの機能の紹介です。

OperatorのGroupSortやFold演算子等で使われる@Keyアノテーションのgroupやorderの文字列内のプロパティー名を入力補完することが出来ます。
AsakusaFWの仕様としてはcamelCaseとsnake_caseのどちらでもいいようですが、DMDL EditorXではsnake_caseに変換します。

個人的には、演算子生成ウィザードでメソッドを生成するときにグルーピングキーやソートキーは適当に指定しておいて、@Keyを入力補完するという使い方をよくします。


DMDL EditorX プロパティー一覧に対するソース生成

2018-12-17 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2018の17日目、拙作DMDL EditorXの機能の紹介です。

ツールバーの「New Property Statement」というメニューからプロパティー一覧を使ったソースを生成するウィザードが開けます。
例えばプロパティーの移送を行うメソッド(result.setHogeOpetion(in.getHogeOption());)をデータモデル内の全プロパティーに対して生成することが出来ます。

データモデル内の全プロパティーの移送等は抜け漏れが発生することがあるので、こういった機能を使って生成した方がよいと思います。