makotan _at_ gmail dot com

API

APIってBaoとProcessorの二つ
Bao:S2Daoっぽくインターフェースにアノテーションを書いてProcessorを呼び出すもの。
Processor:ホントにエンジンを叩いたり色々仕事してる頑張り屋さん
って事で、Baoがやれることは100%の確率でProcessorでも出来る。
ProcessorAPIとして存在してないモノもあるけどね(笑)
SimpleBuriProcessor:権限情報を扱わない時のためのProcessor
StandardBuriProcessor:権限情報を扱うときの為のProcessor
BuriAutoSelectProcessor:上二つをパッケージで勝手に切り替えて呼び出すProcessor
BuriAutoSelectAutoSignalProcessor:長いけどシグナル用なのでAPIとはちょっと違ってXPDLの中で叩くやつ(ぉぃ
で、APIは色々あるけど、とりあえず


toNextStatus


ってやることだけ覚える。
残りの引数は
path:パッケージ名.プロセス名.アクティビティー名のセット
あんまり知られてないけど、状況によってはパッケージ名だけあれば何となく呼び出せたりする。状況依存なのとあんまり嬉しくないので普段は言わない(w
object:dtoとかentityとかそういうの
action:XPDLの中で#action == "hoge"って判断して行き先を変更するためのモノ
resultExp:ほとんどの人が意味不明なやつって思うやつ
BuriProcessorInfo:上に書いてるやつとか、それ以外でも取り込んでぶりが処理するための情報をまとめたやつ

これでAPIの使い方はマスター完了。って事で終わり!(ぉぃ


でも、ここで重要なのはBuriProcessorInfo!!
なんだけど、既にSVNのコードにはなにやら色々コメントがあるのでそれを見てね〜って事で重要だけどおしまい。


そんなことより・・・あんまり説明されてない実装上割と重要な内容があって
contextってやつ
#dataとか#actionとかが実は全部Contextとして扱われてる。ちなみにエンジンの中ではUserContextって呼んでる
ContextはOgnlInvokerとかでXPDLの中で値を変えたりも出来るし、イベント機能を使えばその中で追加もできる
そのContextから戻り値を作るのがresultExpっていうOGNL式。
OGNL式で書ける事なら何でも書けるので・・・Mapとかも返せる
まぁたとえば
イベント機能を使ってたどり着いたActivityをuserContext.put("acts","hogehoge")って感じで入れて、resultExpで"#acts"って書けばそれで行き着いた先のActivityが取り出せたりするよ。って感じかなぁ〜
resultExpってあんまり使い道がないんだよね・・・(^^;