Tigerアノテーションの巻
これまでの解説はこちら。
http://d.hatena.ne.jp/rokugen/20061204
S2Maiは、定数アノテーションと同等の機能を持ったTigerアノテーションも提供しています。
Tigerアノテーションを使う場合は、s2mai-tiger.jarをクラスパスに含めて下さい。s2mai-tigerの配布zipには他のjarもありますが、開発・テスト時に必要となるものなので、実行時には特に必要ではありません。
使用例
定数アノテーションを下記のように使ったとします。
public interface TestMai { static final String FROM = "hoge@foo.com"; static final MailAddress TO = new MailAddress("rokugen@example.com","六"); static final MailAddress[] sendMail2_TO = new MailAddress[]{new MailAddress("foo@example.com","ふー"),new MailAddress("bar@example.com","ばー")}; static final MailAddress sendMail3_BCC = new MailAddress("fuga@example.com","ふが"); void sendMail(TestData data); void sendMail2(TestData2 data); void sendMail3(TestData3 data); }
@From(@MailAddr(address="hoge@foo.com")) @To(@MailAddr(address="rokugen@example.com", personal="六")) public interface TestMai { void sendMail(TestData data); @To({@MailAddr(address="foo@example.com", personal="ふー"), @MailAddr(address="bar@example.com", personal="ばー")}) void sendMail2(TestData2 data); @Bcc("fuga@example.com"); void sendMail3(TestData3 data); }
こうなります。Mai共通に適用する場合はinterface型宣言の上、特定のメソッドに適用する場合はメソッドの上に書きます。
解説
@MailAddr
メールアドレスと名前を保持するアノテーションです。addressにメールアドレス、personalに名前を指定します。personalは省略可です。
@MailAddr(address="rokugen@example.com", personal="六") @MailAddr(address="foo@example.com")