|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
DIとAOPをサポートしたS2コンテナのインターフェースです。
コンポーネントの管理を行う機能を提供します。 コンポーネントとは1つかまたそれ以上のクラスで構成されるJavaオブジェクトです。 S2コンテナはコンポーネントの生成、コンポーネントの初期化、コンポーネントの取得を提供します。 コンポーネントを取得するキーには、コンポーネント名、コンポーネントのクラス、またはコンポーネントが実装するインターフェースを指定することができます。
S2コンテナ全体は複数のコンテナにより階層化されています。 一つのコンテナは複数のコンテナをインクルードすることができます。 複数のコンテナが同一のコンテナをインクルードすることができます。
インクルードの参照範囲についてのイメージを示します。
コンテナの検索順についてのイメージを示します。
S2コンテナは3種類のインジェクションをサポートします。
コンストラクタ・インジェクション
セッター・インジェクション
メソッド・インジェクション
コンテナへの登録、コンテナからのコンポーネント取得、検索などを行うコンポーネントを管理する機能
getComponent
getComponentDefSize
getComponentDef
findComponents
findAllComponents
findLocalComponents
findComponentDefs
findAllComponentDefs
findLocalComponentDefs
hasComponentDef
register
injectDependency
getNamespace
setNamespace
getPath getPath getPath
setPath setPath setPath
getClassLoader
setClassLoader
init
destroy
getExternalContext
setExternalContext
getExternalContextComponentDefRegister
setExternalContextComponentDefRegister
hasDescendant
getDescendant
registerDescendant
include
getChildSize
getChild
getParentSize
getParent
addParent
getRoot
setRoot
registerMap
メソッドの概要 | |
void |
addParent(S2Container parent)
親コンテナを追加します。 |
void |
destroy()
コンテナの終了処理をおこないます。 |
ComponentDef[] |
findAllComponentDefs(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
java.lang.Object[] |
findAllComponents(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
ComponentDef[] |
findComponentDefs(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
java.lang.Object[] |
findComponents(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
ComponentDef[] |
findLocalComponentDefs(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
java.lang.Object[] |
findLocalComponents(java.lang.Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
S2Container |
getChild(int index)
番号で指定された位置の子コンテナを返します。 |
int |
getChildSize()
インクルードしている子コンテナの数を返します。 |
java.lang.ClassLoader |
getClassLoader()
クラスローダーを返します。 |
java.lang.Object |
getComponent(java.lang.Object componentKey)
指定されたキーに対応するコンポーネントを返します。 |
ComponentDef |
getComponentDef(int index)
番号で指定された位置のコンポーネント定義を返します。 |
ComponentDef |
getComponentDef(java.lang.Object componentKey)
指定されたキーに対応するコンポーネント定義を返します。 |
int |
getComponentDefSize()
コンテナに登録されているコンポーネント定義の数を返します。 |
S2Container |
getDescendant(java.lang.String path)
path を読み込んだS2コンテナを返します。 |
ExternalContext |
getExternalContext()
外部コンテキストを返します。 |
ExternalContextComponentDefRegister |
getExternalContextComponentDefRegister()
外部コンテキスト が提供する コンポーネントを登録するオブジェクトを返します。 |
java.lang.String |
getNamespace()
名前空間を返します。 |
S2Container |
getParent(int index)
番号で指定された位置の親コンテナを返します。 |
int |
getParentSize()
このコンテナをインクルードしている親コンテナの数を返します。 |
java.lang.String |
getPath()
設定ファイルの path を返します。 |
S2Container |
getRoot()
ルートのS2コンテナを返します。 |
boolean |
hasComponentDef(java.lang.Object componentKey)
指定されたキーに対応するコンポーネント定義が存在する場合 true を返します。 |
boolean |
hasDescendant(java.lang.String path)
path を読み込んだS2コンテナが存在する場合true を返します。 |
void |
include(S2Container child)
コンテナを子としてインクルードします。 |
void |
init()
コンテナの初期化を行います。 |
void |
injectDependency(java.lang.Object outerComponent)
outerComponent のクラスをキーとして登録された
コンポーネント定義 に従って、必要なコンポーネントのインジェクションを実行します。
|
void |
injectDependency(java.lang.Object outerComponent,
java.lang.Class componentClass)
componentClass をキーとして登録された コンポーネント定義 に従って、必要なコンポーネントのインジェクションを実行します。
|
void |
injectDependency(java.lang.Object outerComponent,
java.lang.String componentName)
componentName をキーとして登録された コンポーネント定義 に従って、インジェクションを実行します。
|
boolean |
isInitializeOnCreate()
コンテナ作成時に初期化する場合 true を返します。 |
void |
register(java.lang.Class componentClass)
クラスをコンポーネント定義として登録します。 |
void |
register(java.lang.Class componentClass,
java.lang.String componentName)
指定された名前でクラスをコンポーネント定義として登録します。 |
void |
register(ComponentDef componentDef)
コンポーネント定義を登録します。 |
void |
register(java.lang.Object component)
コンポーネントを登録します。 |
void |
register(java.lang.Object component,
java.lang.String componentName)
指定された名前でコンポーネントを登録します。 |
void |
registerDescendant(S2Container descendant)
descendant を子孫コンテナとして登録します。
|
void |
registerMap(java.lang.Object key,
ComponentDef componentDef,
S2Container container)
子コンテナ( container )に登録された コンポーネント定義(componentDef )をこのコンテナから検索できるよう
コンポーネント定義を管理するマップに登録します。 |
void |
setClassLoader(java.lang.ClassLoader classLoader)
クラスローダーを設定します。 |
void |
setExternalContext(ExternalContext externalContext)
外部コンテキストを設定します。 |
void |
setExternalContextComponentDefRegister(ExternalContextComponentDefRegister externalContextComponentDefRegister)
外部コンテキスト が提供する コンポーネントを登録するオブジェクトを設定します。 |
void |
setInitializeOnCreate(boolean initializeOnCreate)
コンテナ作成時に初期化する場合 true を設定します。 |
void |
setNamespace(java.lang.String namespace)
名前空間を設定します。 |
void |
setPath(java.lang.String path)
設定ファイルの path を設定します。 |
void |
setRoot(S2Container root)
ルートのS2コンテナを設定します。 |
インタフェース org.seasar.framework.container.MetaDefAware から継承したメソッド |
addMetaDef, getMetaDef, getMetaDef, getMetaDefs, getMetaDefSize |
メソッドの詳細 |
public java.lang.Object getComponent(java.lang.Object componentKey) throws ComponentNotFoundRuntimeException, TooManyRegistrationRuntimeException, CyclicReferenceRuntimeException
キーが文字列の場合、名前が一致するコンポーネントを返します。 キーがクラスまたはインターフェースの場合、キーの型に代入可能なコンポーネントを返します。
componentKey
- コンポーネントを取得するためのキー
ComponentNotFoundRuntimeException
- コンポーネントが見つからない場合
TooManyRegistrationRuntimeException
- 同じ名前、または同じクラスに複数のコンポーネントが登録されている場合
CyclicReferenceRuntimeException
- コンストラクタ・インジェクションでコンポーネントの参照が循環している場合public java.lang.Object[] findComponents(java.lang.Object componentKey) throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナを対象とします。 このS2コンテナから,キーに対応する全てのコンポーネントを配列で返します。 返される配列に含まれるコンポーネントは全て同一のS2コンテナに登録されたものです。
componentKey
- コンポーネントを取得するためのキー
CyclicReferenceRuntimeException
- コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findAllComponents(java.lang.Object)
,
findLocalComponents(java.lang.Object)
public java.lang.Object[] findAllComponents(java.lang.Object componentKey) throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナとその子孫コンテナの全てを対象とします。 対象になるS2コンテナ全体から、キーに対応する全てのコンポーネントを配列で返します。
componentKey
- コンポーネントを取得するためのキー
CyclicReferenceRuntimeException
- コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findComponents(java.lang.Object)
,
findLocalComponents(java.lang.Object)
public java.lang.Object[] findLocalComponents(java.lang.Object componentKey) throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナのみです。 現在のS2コンテナから、キーに対応する全てのコンポーネントを配列で返します。
componentKey
- コンポーネントを取得するためのキー
CyclicReferenceRuntimeException
- コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findComponents(java.lang.Object)
,
findAllComponents(java.lang.Object)
public void injectDependency(java.lang.Object outerComponent) throws ClassUnmatchRuntimeException
outerComponent
のクラスをキーとして登録された
コンポーネント定義
に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義
のインスタンス定義
は
outer
でなくてはなりません。
outerComponent
- 外部コンポーネント
ClassUnmatchRuntimeException
- 適合するコンポーネント定義が見つからない場合public void injectDependency(java.lang.Object outerComponent, java.lang.Class componentClass) throws ClassUnmatchRuntimeException
componentClass
をキーとして登録された コンポーネント定義
に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義
のインスタンス定義
は
outer
でなくてはなりません。
outerComponent
- 外部コンポーネントcomponentClass
- コンポーネント定義のキー (クラス)
ClassUnmatchRuntimeException
- 適合するコンポーネント定義が見つからない場合public void injectDependency(java.lang.Object outerComponent, java.lang.String componentName) throws ClassUnmatchRuntimeException
componentName
をキーとして登録された コンポーネント定義
に従って、インジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義
のインスタンス定義
は
outer
でなくてはなりません。
outerComponent
- 外部コンポーネントcomponentName
- コンポーネント定義のキー (名前)
ClassUnmatchRuntimeException
public void register(java.lang.Object component)
S2コンテナに無名のコンポーネントとして登録します。 登録されたコンポーネントはインジェクションやアスペクトの適用などは出来ません。 他のコンポーネント構築時に依存オブジェクトとして利用することが可能です。
component
- コンポーネントpublic void register(java.lang.Object component, java.lang.String componentName)
component
- コンポーネントcomponentName
- コンポーネント名public void register(java.lang.Class componentClass)
登録するコンポーネントは以下のものになります。
インスタンス定義
singleton
自動バインディング定義
auto
componentClass
- コンポーネントのクラスpublic void register(java.lang.Class componentClass, java.lang.String componentName)
登録するコンポーネントは以下のものになります。
インスタンス定義
singleton
自動バインディング定義
auto
componentClass
- コンポーネントのクラスcomponentName
- コンポーネント名public void register(ComponentDef componentDef)
componentDef
- コンポーネント定義public int getComponentDefSize()
public ComponentDef getComponentDef(int index)
index
- 番号
public ComponentDef getComponentDef(java.lang.Object componentKey) throws ComponentNotFoundRuntimeException
componentKey
- キー
ComponentNotFoundRuntimeException
- コンポーネント定義が見つからない場合public ComponentDef[] findComponentDefs(java.lang.Object componentKey)
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナを対象とします。 このS2コンテナから,キーに対応する全てのコンポーネント定義を配列で返します。 返される配列に含まれるコンポーネント定義は全て同一のS2コンテナに登録されたものです。
componentKey
- コンポーネント定義を取得するためのキー
findAllComponentDefs(java.lang.Object)
,
findLocalComponentDefs(java.lang.Object)
public ComponentDef[] findAllComponentDefs(java.lang.Object componentKey)
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナとその子孫コンテナの全てを対象とします。 対象になるS2コンテナ全体から、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey
- コンポーネント定義を取得するためのキー
findComponentDefs(java.lang.Object)
,
findLocalComponentDefs(java.lang.Object)
public ComponentDef[] findLocalComponentDefs(java.lang.Object componentKey)
検索の範囲は現在のS2コンテナのみです。 現在のS2コンテナから、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey
- コンポーネント定義を取得するためのキー
findComponentDefs(java.lang.Object)
,
findAllComponentDefs(java.lang.Object)
public boolean hasComponentDef(java.lang.Object componentKey)
true
を返します。
componentKey
- キー
true
、そうでない場合はfalse
public boolean hasDescendant(java.lang.String path)
path
を読み込んだS2コンテナが存在する場合true
を返します。
path
- パス
path
を読み込んだS2コンテナが存在する場合true
、そうでない場合はfalse
public S2Container getDescendant(java.lang.String path) throws ContainerNotRegisteredRuntimeException
path
を読み込んだS2コンテナを返します。
path
- パス
ContainerNotRegisteredRuntimeException
- S2コンテナが見つからない場合public void registerDescendant(S2Container descendant)
descendant
を子孫コンテナとして登録します。
子孫コンテナとは、このコンテナに属する子のコンテナや、その子であるコンテナです。
descendant
- 子孫コンテナpublic void include(S2Container child)
child
- インクルードするS2コンテナpublic int getChildSize()
public S2Container getChild(int index)
index
- 子コンテナの番号
public int getParentSize()
public S2Container getParent(int index)
index
- 親コンテナの番号
public void addParent(S2Container parent)
parent
- 親として追加するS2コンテナpublic void init()
public void destroy()
public java.lang.String getNamespace()
public void setNamespace(java.lang.String namespace)
namespace
- 名前空間public boolean isInitializeOnCreate()
true
を返します。
true
public void setInitializeOnCreate(boolean initializeOnCreate)
true
を設定します。
initializeOnCreate
- コンテナ作成時に初期化する場合true
public java.lang.String getPath()
path
を返します。
path
public void setPath(java.lang.String path)
path
を設定します。
path
- 設定ファイルのpath
public S2Container getRoot()
public void setRoot(S2Container root)
root
- S2コンテナpublic ExternalContext getExternalContext()
public void setExternalContext(ExternalContext externalContext)
外部コンテキスト
は、
application
,
request
,
session
など 各インスタンス定義
を提供するものです。
これらのインスタンス定義を使用するには 外部コンテキスト
を設定する必要があります。
externalContext
- ExternalContext
public ExternalContextComponentDefRegister getExternalContextComponentDefRegister()
外部コンテキスト
が提供する コンポーネントを登録するオブジェクトを返します。
public void setExternalContextComponentDefRegister(ExternalContextComponentDefRegister externalContextComponentDefRegister)
外部コンテキスト
が提供する コンポーネントを登録するオブジェクトを設定します。
externalContextComponentDefRegister
- 外部コンテキストが提供するコンポーネントを登録するオブジェクトpublic java.lang.ClassLoader getClassLoader()
public void setClassLoader(java.lang.ClassLoader classLoader)
classLoader
- public void registerMap(java.lang.Object key, ComponentDef componentDef, S2Container container)
container
)に登録された コンポーネント定義(componentDef
)をこのコンテナから検索できるよう
コンポーネント定義を管理するマップに登録します。
key
- キーcomponentDef
- コンポーネント定義container
- S2コンテナ
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |