とめども日誌

2006/10/22

[]izuオフ2 izuオフ2を含むブックマーク

実に八ヶ月ぶりに書込み(汗)。久々に書いたのは、またizuオフやるよー、というお知らせのためであります。皆様のお越しをお待ちしております。

参加希望の方は↓をご覧ください。

http://zwfk.s55.xrea.com/hiki/misc/?izu%A5%AA%A5%D52

というわけで告知よろ>id:nadi

ぱにゅあぁああwwwwwぱにゅあぁああwwwww 2009/07/09 01:31
前のは俺と相性合わなかったから最近コッチに替えたらバッチリ最強ww
クリ舐めパイ揉み同時進行上等すぎだしwwwww
てか一発で10万貰えたんだけど、ここのお姉さんみんな金使いひでぇなwww
まぁ俺の懐は潤うからいいけどなw 金ってある所にはあるんだな(^^;

http://9z79ToP.meshiuma.tsukimisou.net/

ケースバイケースwwwwケースバイケースwwww 2009/07/26 05:39
「今日はディープスロートの練習させて!!ケースバイケースだから!!!」
昨日こんな事を言われたんだが・・・なんだよケースバイケースってwwww
使い方間違ってるよwwww てかこんなヴァカなのに何で金持ちなの??
すごいテンションでいつも10万くれるのはやっぱヴァカだから?wwwwww

http://netoge.bolar.net/0iOg6vy/

試してみたお!試してみたお! 2009/08/05 06:36
オッス!ニートの桜井だよ!いやいや毎度毎度!!!!!
ここで釣った女でコンニャクオナと生マヌコのどっちが気持ちいいか試したお!!
えとうん・・・問答無用で生マヌコの勝ちだわwwwwwwwwwww
てかハメさせてくれた女子が当たり前のように10万くれたんだけど何でー???

http://ene.creampie2.net/CAvbWdX/

ぎょはぁ!!!!!ぎょはぁ!!!!! 2009/08/09 07:00
ヘイヘイ!!あひひひほはぁwwwwwww ちょwwいきなりごめwwwwww
寝てるだけで5 万もらっちゃって真面目な自分がヴァカらしくなってさwwwww
はぁーいま女シャワー浴びてんだけど、もう1ラウンドでまた5 万くれるってYO!wwwwww
またマグロでさっさと中 出 しするわwwwwwwwww

http://kachi.strowcrue.net/ccwXLvC/

ケ ツ コ キ!!!!!!!!!ケ ツ コ キ!!!!!!!!! 2009/08/16 05:13
すんげえケ ツでかい女に当たった!!! コイツのケ ツ 技すぎすぎwwwww

ケ ツにロ -ショ ン塗りたくって、俺のティ ヌコ挟んですんげー前後すんの!!!
前後してる時にク リに当たったりマ ヌ コに入ったりして
女もアヒアヒしまくりで俺も女も絶 頂しまくりで最高ですたwwwwwww

こりゃハマるわぁ・・・・

http://yuzo.plusnote.net/E1NuLNj/

パイが世界を救う日パイが世界を救う日 2009/08/27 03:34
パイおパパイパパぱいいいぱいいい!!!!!!!!
なんでセ ッ ク スさせて貰えたのに5 万貰えたわけー?wwwww
てか初 体 験ゴチーーみたいなぁーwwwwwwwwww

今までこれ知らなかった俺ってアフォすぎぃーー(^▽^;;

http://koro.chuebrarin.com/VMMYhDb/

2006/02/26

[]6.Converter 17:59 6.Converterを含むブックマーク

さて今日はConveter。これは、Baoの中で定義する定数アノテーションの1つです。

まずはマニュアルの該当部分を見てみますか。

CONVERTER
値の自動変換のためのアノテーションです
オプション

主キーのidを渡されてDtoを読み込んだり、他のフローなどから呼びだされたときに別のDtoから変換するためのアノテーションです。

ex)
public static BuriConvert CONVERTER[] = new BuriConvert[]{
new BuriConvert(Long.class,"FurnitureItemDao.getFurnitureItem(#data)")
};

Long.class型の引数を発見すると自動的にFurnitureItemDao.getFurnitureItem(#data)を呼びだしてその戻り値を#dataとして処理します。

要は、Baoの中に定義されているメソッドで、そのBaoが処理するべきDto以外のオブジェクトを引数として渡されたときに、そのオブジェクトをキーにして本来のDtoオブジェクトに変換するメソッドを呼び出すということね。


FurnitureManagementBaoでは、CONVETERはこう書かれてます。って、マニュアルに載ってるのとまったく一緒だけど。

    public static BuriConvert CONVERTER[] new BuriConvert[]{

        new BuriConvert(Long.class,"FurnitureItemDao.getFurnitureItem(#data)")

    };

CONVERTER定数アノテーションの型は、BuriConvertオブジェクトの配列。BuriConvertクラスのコンストラクタ引数には、変換元のオブジェクトの型と、変換する際のロジックをOGNLで記述します。ここでは第一引数にLong.class、第二引数に"FurnitureItemDao.getFurnitureItem(#data)"と書かれているので、Baoのメソッド内でLong型引数を持つものがあったら、FurnitureItemDaoのgetFurnitureItemメソッドを呼び出します。ちなみに、引数中の"FurnitureItemDao"ってのは、クラス名を示しているわけではなく、diconファイル内で定義されたコンポーネント名です。このチュートリアル中のサンプルではクラス名=コンポーネント名として記述しているので一見勘違いするかもしれませんが、S2Buri中でOGNLを書けるところは(多分)全て、このようにdicon中のコンポーネント名を使ってS2管理下のコンポーネントを呼び出せるのです。

さて、このFurnitureItemDaoのメソッドのシグネチャはこうなってます。

    public FurnitureItemDto getFurnitureItem(String furnitureID);

引数はLong型なのかと思いきやString型……。ちょっと意外。OGNLの制限で、こういうのはString型じゃないと駄目ってこと??よくわからんかったので、無理矢理引数をString型からLong型に変えてみたところ、問題なく実行できた。どっちでもいいらしい。ふーん。

このConverterの使い道としては、基本的には、テーブル中のキーとなるオブジェクトを引数に、Daoのメソッドを呼び出してDtoを引っ張ってくる、という使い方になるでしょーね。いちいち自分でDaoを呼び出さなくて済むようになると。便利!

あと注意事項としては、CONVERTERが有効なのは、Baoのメソッドの中でも、フロー遷移用のメソッドのみ、ってこと。Baoが持っているもう一つのメソッド、データ取得用のメソッド(get/select/find/countで始まるメソッド)では、CONVERTERが指定されてても変換されません。ま、役割から考えれば当然なんですけど。

また、CONVERTERアノテーションを書くと、Bao中の全てのフロー遷移用メソッドで有効になりますが、個別のメソッドごとに定義したい場合は、_CONVERTERアノテーションを使います。"メソッド名_CONVERTER"という名前で定数を宣言する以外はCONVETERアノテーションと一緒。


さて、今回はこれまで……、って思ったけど、今回はいつもより短いし時間も余ってるので、Baoのフロー遷移メソッドが呼び出されてから、実際にフロー遷移が行われるところまでのシーケンスを纏めてみた。Converterに関係ないところはざっくり省略。

f:id:zwfk:20060226175307p:image

簡単にここに出てくるオブジェクトの説明も書いておく(間違いあるかもしれんけど)。

オブジェクト名説明
プログラム自分で実装するところ
BaoInterceptorBaoの呼出しをインターセプトするクラス
BaoInvokerBaoInterceptorが、実際の処理を委譲するクラス
BaoInvokeMetaDataBaoのメタデータ(アノテーションの情報)を保持するクラス
ScriptProcessorOGNLの解釈・実行を行うクラス
BuriEngineフロー遷移を実行するクラス
2003 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 10 |
Connection: close