ひしだまの変更履歴

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

KEY_SEGMENT_SEPARATOR

2014-12-13 03:06:13 | PG(分散処理)

Asakusa Framework Advent Calendar 2014の13日目です。

AsakusaFW0.7.0が出たときに紹介し忘れていた地味な便利機能、KEY_SEGMENT_SEPARATORについて。
(「地味」は重要です。DQ10の地味祭を参照) 


AsakusaFW0.7.0で、テストに使われるPropertyNameクラスにKEY_SEGMENT_SEPARATORというフィールドが追加になっています。
ドキュメントには何の説明も載っていませんが、Javadocにはちゃんと公開されています。

フロー(JobFlowやFlowPart)のテストを作成して実行すると、実行結果データと検証データが不一致だった場合に例外が発生します。
この例外メッセージにはどういうデータだったのかが出力されますが、このとき、プロパティー名はハイフン区切りになっています!
DMDL定義上はアンダースコア区切りだし、テストデータのExcelファイル上もアンダースコアなのですが。
なので、問題となったデータをExcel上から検索しようと思って例外メッセージからプロパティー名をコピーしても、ハイフンをアンダースコアに置換しないといけないのです!

そこで、KEY_SEGMENT_SEPARATORの出番です。
フローのテストクラスに以下のように記述して使います。

static {
  System.setProperty(PropertyName.KEY_SEGMENT_SEPARATOR, "_");
}

これにより、例外メッセージのプロパティー名がアンダースコア区切りになるのです!


なんか、AsakusaFW内部では、プロパティー名を「区切り文字で分割した文字列のList」として扱っているみたいなんですね。それを例外メッセージに出力するときに、今まではハイフンで繋いでいたということみたいです。

なお、DMDL EditorXに「フローのテストクラスの雛形を作成する機能」がありますが、0.7.0以降のプロジェクトでその機能を使用すると、上記のコードが勝手に追加されます
が、便利だからいいでしょ?(笑) 


コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 教えてXtextで更新する方法 | トップ | AsakusaFW0.7.1 Windowsでテ... »
最新の画像もっと見る

コメントを投稿

PG(分散処理)」カテゴリの最新記事