Asakusa FrameworkをScalaで記述 するAfwHS α版のKeyについて。
|
AfwHSのKeyクラスは、AsakusaFWのKeyアノテーションを模したもの。
集約キーやマッチングキーを指定するのに使う。
case class Key(group: Seq[String], order: Seq[String] = Seq.empty)
↓AsakusaFWの@Key
@Key(group = { "プロパティー名",… }, order = { "プロパティー名",… })
※現状のAfwHSではorderは指定できるけど使ってない^^;
import jp.hishidama.afwhs._
例 | 備考 |
---|---|
Key(group = Seq("key1","key2")) |
最も素直な使い方。 Scala2.8以降では引数名を指定して値を渡せるので、アノテーションっぽい記述が出来る。 orderはデフォルト引数が定義されているので、指定する必要は無い。 |
Key(group = "key1,key2") |
SeqでなくStringで渡せるようなコンストラクターが用意されているので、文字列で渡せる。 しかもカンマ区切りで分割する(という余計なw)機能も付けてある。 |
Key("key1,key2") |
引数名を指定しない書き方も出来る。 |
cogroup("name", Key(group=Seq("word")), 〜 cogroup("name", Key(group="word"), 〜 cogroup("name", Key("word"), 〜 cogroup("name", "word", 〜 |
cogroupのようにKeyを引数にとる場合、Stringからの暗黙変換が使える。 つまり "word" という指定があったら、Key("word") を意味する。(この暗黙変換はafwhsのパッケージオブジェクトで定義されている) |