[Seasar-dev:95] Re: [S2JMS]BytesMessageCreator/StreamMessageCreator

bowez@n08.itscom.net bowez
2005年 7月 28日 (木) 01:48:16 JST


ぼうずです。

> > 今、MapMessageCreator には 
> >  setMap(Map) 
> > というのを用意しています。
> > 中身は、value が Integer なら Message#setInt する感じです。
> > 
> > それに加えて、setValue(key, value) みたいなものも用意しようかと考
> > えていました。
> > これは addProperty(String key, Object value) 相当のものだと思いま
> > す。
> > 
> > 名前は、我ながらいただけない感じがしていないでもないので、(^^;
> > アイデアがあればお願いします。
> 
> 私もネーミングのセンスがなくていつも悩みます...
> とりあえず,setXxx() だとその前に設定した値は捨てられるような
> イメージが私にはあります.
> addXxx() なら追加になるので以前設定した値はそのままというイメージに
> なります.
> MapMessage の API を考えると,setMap(Map) が 2 回呼ばれた時に
> 最初に渡された Map から設定した値をリセットできなさそうなので,
> addXxx() の方がよさげではないかと.

現在の MapMessageCreator は、setMap(Map) が呼ばれても、
setupBody(Message) が呼ばれるまでは Message本体に対して値を設定し
にいかないようにしていました。
#TextMessageCreator と同じ感じです。

なので、setMap(Map) で設定された Map はインスタンス変数に保持して
いて、setMap されるたびに Map はリセットされるようになっています。

確かに、前に設定した値がクリアされずに追加されていくなら、addXxx
の方が良い名前だと思います。
ただ、Mapごと追加していくという使い方を想定していませんでした。
そういう使い方なら、ご指摘の通り addProperty とか addMap などの方
が良いですね。


seasar-dev メーリングリストの案内