Quantcast
Channel: ひしだまの変更履歴
Viewing all articles
Browse latest Browse all 262

Asakusa Framework 0.10.1 Convertのoriginalを結線しない

$
0
0

Asakusa Framework Advent Calendar 2018の2日目です。

今日はAsakusaFW 0.10.1で導入された新機能、Convert演算子の仕様変更の話です。

Convert演算子は入力のデータモデルを別のデータモデルに変換する処理を記述するものですが、出力はoutとoriginalの2種類あります。outは変換後のデータモデル、originalは変換前のデータモデルです。
厳密には、originalは入力データをそのまま出力するのではなく、メソッド内で入力データに対して変更(値の代入)をすると、それが反映されます。(つまりUpdate演算子も兼ねる、というイメージです)

しかし個人的には、originalは全く使ったことがありません^^;
いつも常に必ずstop演算子に渡していました。

MyConvert convert = operator.myConvert(in); core.stop(convert.original); Source<Model2> converted = convert.out;

AsakusaFWの思想としては、出力されたものは明示的に処理する(別の処理への入力とする(結線する))ことになっているのです。

それが、0.10.1から、Convertのoriginalについてはstop演算子に渡さなくても良くなりました!
これで以下のようにすっきりと書くことが出来ます。

Source<Model2> converted = operator.myConvert(in).out;

なお、省略できるのはConvertのoriginalだけです。

MasterCheckやMasterJoinUpdate等のmissedは省略できません。
これについては、missedの方を後続処理に渡すことも多々あるので、省略しない方が良いと思います。 


Viewing all articles
Browse latest Browse all 262

Trending Articles