-Primitive変換

KijimunaのOgnlRttiで、問題がひとつ発見。OGNLが"23"という文字列を評価すると、intではなく、Integerで返してきます。それを、たとえばint型のプロパティに受け入れないといけないのですが、この変換はすでに実装していました。しかし、ここでWideningConversionサポートによって、long型のプロパティにIntegerで来ても受け入れるようにしないといけません。ここの変換処理をlong型とint型というプリミティブ同士の場合しか書いてなかったので、OGNL通すS2の設定XMLでは全部NGでした。ということで、これを直したのでWideningConversionは今度こそ完成だと思う。
結構高度なことやってるんですよ。他のプラグインじゃここまでやってないよ〜。OGNL使ってるフレームワークはいくらかあって、それのプラグインもSpindleなどあるんだけど、このへんまったくあきらめてるみたい。OgnlRttiがこなれたらSpindleに組み込んでもらえるように連絡するかな。興味ある方は、Kijimunaのディストロ内のソースコードで、org.seasar.kijimuna.core.rtti.* および org.seasar.kijimuna.core.ognl.* をご覧くださいませ。
ちなみに、NarrowingConversionはサポートをあえてしていません。intの値をbyteにキャストするような場合はコンパイラ的にはOKですが、まあ、コンテナ的にはNGかなと思ったのです。このへん要望あれば機能追加します。この実現は単調で面倒なコーディングなので、要望なければやらないとこうかなと思ってます。