[Seasar-user:17427] [Kuina-Dao] (criteria) InputParameterImpl で名前を指定しないコンストラクタ

Tomoyuki Kano [E-MAIL ADDRESS DELETED]
2009年 5月 13日 (水) 15:22:44 JST


加納です

criteria インタフェースで、自動生成ロジックを考えています。

現状InputParameterImpl のコンストラクタは Named Parameters にのみ
対応していますが、せっかく Binderの実装が position をもっているので
name 引数を持たないコンストラクタを用意し、Positional Patameters に
対応する以下のような雰囲気の実装があると呼び側で名前を生成しなくて
済むので嬉しいのですが。

Named と Posisional がミックスにならないように追加の検査が
context.setParameter() にも必要なりますし、過剰仕様かもしれません
また、直接関係したところしか見てないので見落としがあるかもしれません。

---- ImpluParameterImpl.java ----

private Integer position;

void evaluate(final CriteriaContext context) {
  if (name == null) {
    if (position == null) {
      // getPosition() は呼ばれる都度にインクリメント
      position = new Integer(context.getPosition());

      if (temporalType == null || value == null) {
        context.setParameter(position, value);
      } else ... {
        ...
      }
    }
    context.append('?').append(Integer.toString(position));
  } else {
    ...
  }
}

よろしくご検討ください

--
tomo.



Seasar-user メーリングリストの案内