SeasarJavadocProject

S2Container

2.0.22 反映済み
fileS2Container.java

#code(Java)<<EOF package org.seasar.framework.container;

/**

* <p>コンポーネントを管理するDIコンテナのインターフェースです。</p>
* <p>コンテナ自身も"container"という名前でコンポーネントとして
* 登録されます。</p>
*
* @author higa
*/

public interface S2Container {

   /** <p>S2コンテナ自身のコンポーネント名です。</p> */
   public String NAME = "container";
   /**
    * <p>キーを指定してコンポーネントを取得します。</p>
    * <p>キーが文字列の場合、一致するコンポーネント名を持つ
    * コンポーネントを取得します。<br>
    * キーがクラスまたはインターフェースの場合、<br
    * 「コンポーネント instanceof キー」<br>
    * を満たすコンポーネントを取得します。</p>
    *
    * @param componentKey コンポーネントを取得するためのキー
    * @return コンポーネント
    * @throws ComponentNotFoundRuntimeException コンポーネントが見つからない場合
    * @throws TooManyRegistrationRuntimeException 同じ名前、または同じクラスに複数のコンポーネントが登録されている場合
    * @throws CyclicReferenceRuntimeException constructor injectionでコンポーネントの参照が循環している場合
    */
   public Object getComponent(Object componentKey)
       throws
           ComponentNotFoundRuntimeException,
           TooManyRegistrationRuntimeException,
           CyclicReferenceRuntimeException;
   /**
    * <p>外部コンポーネントにセッター・インジェクション、メソッド・イン
    * ジェクションを実行します。</p>
    * <p>外部コンポーネントのクラスをキーとしてコンポーネント定義を
    * 取得します。<br>
    * instanceモードが"outer"と定義されたコンポーネントのみ有効です。
    * <br>
    * 「コンポーネント instanceof 外部コンポーネント.getClass()」<br>
    * を満たす外部コンポーネント定義を利用します。</p>
    *
    * @param outerComponent 外部コンポーネント
    * @throws ClassUnmatchRuntimeException 適合する外部コンポーネント定義が見つからない場合
    */
   public void injectDependency(Object outerComponent)
       throws ClassUnmatchRuntimeException;
   /**
    * <p>外部コンポーネントにセッター・インジェクション、メソッド・
    * インジェクションを実行します。</p>
    * <p>componentClassをキーとしてコンポーネント定義を取得します。<br>
    * instanceモードが"outer"と定義されたコンポーネントのみ有効です。
    * <br>
    * 「コンポーネント instanceof 外部コンポーネント」<br>
    * を満たす外部コンポーネント定義を利用します。</p>
    *
    * @param outerComponent 外部コンポーネント
    * @param componentClass 外部コンポーネント定義のキー (クラス)
    * @throws ClassUnmatchRuntimeException 「外部コンポーネント instanceof 取得したコンポーネントのクラス」がfalseを返す場合
    */
   public void injectDependency(Object outerComponent, Class componentClass)
       throws ClassUnmatchRuntimeException;
   /**
    * <p>外部コンポーネントにセッター・インジェクション、メソッド・イン
    * ジェクションを実行します。</p>
    * <p>componentClassをキーとしてコンポーネント定義を取得します。<br>
    * instanceモードが"outer"と定義されたコンポーネントのみ有効です。
    * <br>
    * 「コンポーネント instanceof 外部コンポーネント」<br>
    * を満たす外部コンポーネント定義を利用します。</p>
    *
    * @param outerComponent 外部コンポーネント
    * @param componentName 外部コンポーネント定義のキー (名前)
    * @throws ClassUnmatchRuntimeException 「外部コンポーネント instanceof 取得したコンポーネントのクラス」がfalseを返す場合
    */
   public void injectDependency(Object outerComponent, String componentName)
       throws ClassUnmatchRuntimeException;
   /**
    * <p>オブジェクトをコンポーネントとして登録します。</p>
    * <p>キーはオブジェクトのクラスになります。</p>
    *
    * @param component コンポーネントとして登録するオブジェクト
    */
   public void register(Object component);
   
   /**
    * <p>オブジェクトを名前付きコンポーネントとして登録します。</p>
    *
    * @param component コンポーネントとして登録するオブジェクト
    * @param componentName コンポーネント名
    */
   public void register(Object component, String componentName);
   /**
    * <p>クラスをコンポーネント定義として登録します。</p>
    *
    * @param componentClass コンポーネントのクラス
    */
   public void register(Class componentClass);
   /**
    * <p>クラスを名前付きコンポーネント定義として登録します。</p>
    *
    * @param componentClass コンポーネントのクラス
    * @param componentName コンポーネントの名前
    */
   public void register(Class componentClass, String componentName);
   /**
    * <p>コンポーネント定義を登録します。</p>
    *
    * @param componentDef 登録するコンポーネント定義
    */
   public void register(ComponentDef componentDef);
   /**
    * <p>コンポーネント定義の数を取得します。</p>
    *
    * @return コンポーネント定義の数
    */
   public int getComponentDefSize();
   /**
    * <p>番号を指定してコンポーネント定義を取得します。</p>
    *
    * @param index 番号
    * @return コンポーネント定義
    */
   public ComponentDef getComponentDef(int index);
   /**
    * <p>指定したキーに対応するコンポーネント定義を取得します。</p>
    *
    * @param componentKey キー
    * @return コンポーネント定義
    * @throws ComponentNotFoundRuntimeException コンポーネント定義が見つからない場合
    */
   public ComponentDef getComponentDef(Object componentKey)
       throws ComponentNotFoundRuntimeException;
   /**
    * <p>指定したキーに対応するコンポーネント定義を持つどうか判定
    * します。</p>
    *
    * @param componentKey キー
    * @return 存在するならtrue
    */
   public boolean hasComponentDef(Object componentKey);
   
   /**
    * <p>rootのコンテナで、pathに対応するコンテナが既にロードされて
    * いるかを返します。</p>
    *
    * @param path パス
    * @return ロードされているならtrue
    */
   public boolean hasDescendant(String path);
   
   /**
    * <p>rootのコンテナで、指定したパスに対応するロード済みの
    * コンテナを取得します。</p>
    *
    * @param path パス
    * @return コンテナ
    * @throws ContainerNotRegisteredRuntimeException コンテナが見つからない場合
    */
   public S2Container getDescendant(String path)
       throws ContainerNotRegisteredRuntimeException;
   
   /**
    * <p>rootのコンテナに、ロード済みのコンテナを登録します。</p>
    *
    * @param descendant ロード済みのコンテナ
    */
   public void registerDescendant(S2Container descendant);
   /**
    * <p>他のコンテナを子コンテナとしてincludeします。</p>
    *
    * @param child includeする子コンテナ
    */
   public void include(S2Container child);
   
   /**
    * <p>子コンテナの数を取得します。</p>
    *
    * @return 子コンテナの数
    */
   public int getChildSize();
   
   /**
    * <p>番号を指定して子コンテナを取得します。</p>
    *
    * @param index 子コンテナの番号
    * @return 子コンテナ
    */
   public S2Container getChild(int index);
   /**
    * <p>コンテナを初期化します。</p>
    * <p>子コンテナを持つ場合、子コンテナを全て初期化した後、自分を
    * 初期化します。</p>
    */
   public void init();
   /**
    * <p>コンテナの終了処理をおこないます。</p>
    * <p>子コンテナを持つ場合、自分の終了処理を実行した後、
    * 子コンテナ全ての終了処理を行います。</p>
    */
   public void destroy();
   
   /**
    * <p>名前空間を取得します。</p>
    *
    * @return 名前空間
    */
   public String getNamespace();
   
   /**
    * <p>名前空間をセットします。</p>
    *
    * @param namespace セットする名前空間
    */
   public void setNamespace(String namespace);
   
   /**
    * <p>設定ファイルのパスを取得します。</p>
    *
    * @return 設定ファイルのパス
    */
   public String getPath();
   
   /**
    * <p>設定ファイルのパスをセットします。</p>
    *
    * @param path セットする設定ファイルのパス
    */
   public void setPath(String path);
   /**
    * <p>ルートのコンテナを取得します。</p>
    *
    * @return ルートのコンテナ
    */
   public S2Container getRoot();
   
   /**
    * <p>ルートのコンテナをセットします。</p>
    *
    * @param root セットするルートのコンテナ
    */
   public void setRoot(S2Container root);

} EOF


添付ファイル: fileS2Container.java 841件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-11-11 (木) 00:00:00 (5454d)