org.seasar.doma
注釈型 Delegate


@Target(value=METHOD)
@Retention(value=RUNTIME)
public @interface Delegate

委譲を示します。

このアノテーションが注釈されるメソッドは、 Daoインタフェースのメンバでなければいけません。

to 要素に指定されたクラスのインスタンスは、注釈されたメソッドが実行されるたびにインスタンス化されます。 インスタンス化後、注釈されたメソッドと同じシグニチャのメソッドが実行されます。

to 要素に指定されるクラスは次の制約を満たさなければいけません。

例:
 @Dao(config = AppConfig.class)
 public interface EmployeeDao {
 
     @Delegate(to = EmployeeDaoDelegate.class)
     int execute(Employee employee);
 }
 

コンストラクタのパラメータがConfig

 public class EmployeeDaoDelegate {
 
     private final Config config;
 
     public EmployeeDaoDelegate(Config config) {
         this.config = config;
     }
 
     public int execute(Employee employee) {
         ...
     }
 }
 

コンストラクタのパラメータがConfig 型とDaoインタフェース

 public class EmployeeDaoDelegate {
 
     private final Config config;
 
     private final EmployeeDao dao;
 
     public EmployeeDaoDelegate(Config config, EmployeeDao dao) {
         this.config = config;
         this.dao = dao;
     }
 
     public int execute(Employee employee) {
         ...
     }
 }
 

作成者:
taedium

必須要素の概要
 Class<?> to
          委譲先のクラスです。
 

要素の詳細

to

public abstract Class<?> to
委譲先のクラスです。

指定できるクラスには制約があります。



Copyright © 2009-2014 The Seasar Foundation. All Rights Reserved.