@Maskアノテーションを調べていたらちょっと引っかかったので

そんなに大したことではないけど、ちょっと引っかかったので個人用でメモ。


SAStrutsのvalidatorを使うとき、メッセージの引数としてarg0とargsを指定で
きるものがあります。(ex:@Mask)
このときargs = @Arg(key = "message.args", position = 1)という感じで
positionを設定することで、
何番目の引数に値をセットするかを指定することができます。

さて、ちょっとソースを見ててわかったのですが、
どうやら、SAStrutsはarg0とargs両方定義されているアノテーションの場合、
まずarg0が指定されているかを見に行き、
もしarg0が指定されていない場合にはposition=0にはプロパティ名を自動でセッ
トしてしまうように動くみたいです。
すなわち、argsにposition=0を指定していてもarg0を指定していなければ無視し
てプロパティ名がセットされてしまいます。
なので、きちんとメッセージの引数を指定したい場合にはposition=0はarg0に書き、
position=1以降はargsに書く必要があります。


今回は@Maskアノテーションについて調べていて、そのような現象になっている
ことを発見したのですが、
他もたぶんそうなのではないかと推測する次第です。