public interface LaContainer extends MetaDefAware
コンポーネントの管理を行う機能を提供します。 コンポーネントとは1つかまたそれ以上のクラスで構成されるJavaオブジェクトです。 S2コンテナはコンポーネントの生成、コンポーネントの初期化、コンポーネントの取得を提供します。 コンポーネントを取得するキーには、コンポーネント名、コンポーネントのクラス、またはコンポーネントが実装するインターフェースを指定することができます。
S2コンテナ全体は複数のコンテナにより階層化されています。 一つのコンテナは複数のコンテナをインクルードすることができます。 複数のコンテナが同一のコンテナをインクルードすることができます。
インクルードの参照範囲についてのイメージを示します。

コンテナの検索順についてのイメージを示します。
S2コンテナは3種類のインジェクションをサポートします。
コンストラクタ・インジェクションセッター・インジェクションメソッド・インジェクションコンテナへの登録、コンテナからのコンポーネント取得、検索などを行うコンポーネントを管理する機能
getComponentgetComponentDefSizegetComponentDeffindComponentsfindAllComponentsfindLocalComponentsfindComponentDefsfindAllComponentDefsfindLocalComponentDefshasComponentDefregisterinjectDependencygetNamespacesetNamespacegetPath getPath getPathsetPath setPath setPathgetClassLoadersetClassLoaderinitdestroygetExternalContextsetExternalContextgetExternalContextComponentDefRegistersetExternalContextComponentDefRegisterhasDescendantgetDescendantregisterDescendantincludegetChildSizegetChildgetParentSizegetParentaddParentgetRootsetRootregisterMapaddMetaDef, getMetaDef, getMetaDef, getMetaDefs, getMetaDefSize<COMPONENT> COMPONENT getComponent(Object componentKey) throws ComponentNotFoundRuntimeException, TooManyRegistrationRuntimeException, CyclicReferenceRuntimeException
Object[] findComponents(Object componentKey) throws CyclicReferenceRuntimeException
Object[] findAllComponents(Object componentKey) throws CyclicReferenceRuntimeException
Object[] findLocalComponents(Object componentKey) throws CyclicReferenceRuntimeException
componentKey - The key of the component. (NotNull)CyclicReferenceRuntimeExceptionvoid injectDependency(Object outerComponent) throws ClassUnmatchRuntimeException
outerComponentのクラスをキーとして登録された
コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
outerComponent - 外部コンポーネントClassUnmatchRuntimeException - 適合するコンポーネント定義が見つからない場合void injectDependency(Object outerComponent, Class<?> componentClass) throws ClassUnmatchRuntimeException
componentClassをキーとして登録された コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
outerComponent - 外部コンポーネントcomponentClass - コンポーネント定義のキー (クラス)ClassUnmatchRuntimeException - 適合するコンポーネント定義が見つからない場合void injectDependency(Object outerComponent, String componentName) throws ClassUnmatchRuntimeException
componentNameをキーとして登録された コンポーネント定義に従って、インジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
outerComponent - 外部コンポーネントcomponentName - コンポーネント定義のキー (名前)ClassUnmatchRuntimeExceptionvoid register(Object component)
void register(Class<?> componentClass)
void register(ComponentDef componentDef)
void registerByClass(ComponentDef componentDef)
int getComponentDefSize()
ComponentDef getComponentDef(int index)
ComponentDef getComponentDef(Object componentKey) throws ComponentNotFoundRuntimeException
ComponentDef[] findComponentDefs(Object componentKey)
ComponentDef[] findAllComponentDefs(Object componentKey)
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナとその子孫コンテナの全てを対象とします。 対象になるS2コンテナ全体から、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey - コンポーネント定義を取得するためのキーfindComponentDefs(java.lang.Object),
findLocalComponentDefs(java.lang.Object)ComponentDef[] findLocalComponentDefs(Object componentKey)
検索の範囲は現在のS2コンテナのみです。 現在のS2コンテナから、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey - コンポーネント定義を取得するためのキーfindComponentDefs(java.lang.Object),
findAllComponentDefs(java.lang.Object)boolean hasComponentDef(Object componentKey)
boolean hasDescendant(String path)
LaContainer getDescendant(String path) throws ContainerNotRegisteredRuntimeException
void registerDescendant(LaContainer descendant)
void include(LaContainer child)
int getChildSize()
LaContainer getChild(int index)
int getParentSize()
LaContainer getParent(int index)
void addParent(LaContainer parent)
void init()
void destroy()
void registerMap(Object key, ComponentDef componentDef, LaContainer container)
String getNamespace()
void setNamespace(String namespace)
boolean isInitializeOnCreate()
void setInitializeOnCreate(boolean initializeOnCreate)
String getPath()
void setPath(String path)
LaContainer getRoot()
void setRoot(LaContainer root)
ExternalContext getExternalContext()
void setExternalContext(ExternalContext externalContext)
ExternalContextComponentDefRegister getExternalContextComponentDefRegister()
void setExternalContextComponentDefRegister(ExternalContextComponentDefRegister externalContextComponentDefRegister)
ClassLoader getClassLoader()
void setClassLoader(ClassLoader classLoader)
Copyright © 2015 The DBFlute Project. All rights reserved.