Asakusa Framework Advent Calendar 2015の20日目です。
拙作DMDL EditorXの機能紹介、今日はデータモデル編集系のウィザードです。
DMDL EditorXのデータモデル編集系のウィザードは以下のものがあります
データモデルの作成ウィザード データモデルの編集ウィザード 属性の追加/削除ウィザードデータモデルの作成ウィザードは、表形式でプロパティーの情報を入力できるものです。
DMDLに慣れていない内は結合モデルや集計モデルの書き方に戸惑うかもしれないので、ウィザードで生成するのもよいかと思います。
個人的には、新規といっても既存のデータモデルからコピペして修正することが多いのでテキストベースの方がやりやすいのと、仕事で使う場合はExcelに書いたデータ定義から雛形を生成しているので、このウィザードはほとんど使っていません^^;
つまり気付いていないバグがあるかもしれませんが、バグ報告されない限り気付かないので直りません。
データモデルの編集ウィザードは、既存のデータモデルを(作成ウィザードと同じウィザードで)修正できるウィザードです。
こちらは、集計モデルのときは意外と使っていますw
最初に「summarized sum_hoge = hoge => {};」だけ書いて、sum_hogeのところにカーソルを合わせてツールバーの「Edit DataModel」ボタンを押すと、sum_hoge用の編集ウィザードが開きます。
左側の候補一覧にhogeのみ表示されるので、あとは右側にコピーしてkeyやsum・countなどを指定するだけ。
テキストベースだと、説明(ダブルクォーテーションで囲まれた部分。いわばプロパティーの日本語名)を付ける(元のデータモデルと同じにする)のが意外と面倒なので、ウィザードを使う方が楽です。
ちなみに、テキストエディター上では、Ctrl+Space(Windowsの場合)を押すことで入力補完が出来ます。
「summarized」といったキーワードやデータ型、集計モデルや結合モデルで新しいプロパティー名を付ける箇所等では補完機能が使えます。
補完機能も駆使することで、場合によってはウィザードを使うよりもテキストベースで書く方が早かったりするわけです。
属性の追加/削除ウィザードは、属性(@で始まっているもの(@directio.csvとか@windgate.jdbcとか))を付けたり削除したりするウィザードです。
特にWindGate JDBCを使う場合は、データモデル内の全プロパティーに対して「@windgate.jdbc.column(name="カラム名")」を付ける必要があります。大抵の場合はテーブルのカラム名はデータモデルのプロパティー名と同じでしょうから、ウィザードを使って一律設定することが出来ます。
昔はこのウィザードにバグがあり、ちゃんと変更できる場合とエラーになる場合がありました。
どうも、dmdlファイル内に、他のモデルを参照するモデル(hoge2 = hoge1 + {};等)が存在しているとエラーになったようです。ファイル保存時に、参照しているモデル(hoge1)の存在確認をXtextがするのですが、その時点では内部的にはまだ存在解決が出来ておらず、存在していないものとしてエラーになっていました。
今は存在確認を行わないように修正したので、エラーになりません。