org.seasar.framework.container.factory
クラス S2ContainerFactory

java.lang.Object
  拡張org.seasar.framework.container.factory.S2ContainerFactory

public final class S2ContainerFactory
extends Object

S2コンテナを構築するためのファクトリクラスです。

S2コンテナファクトリは、 diconファイルなどの設定ファイルから新たにS2コンテナを構築する機能を提供します。 S2コンテナの構築時には、 指定されたクラスローダをスレッドのコンテキストクラスローダとして設定します。 そのため、 S2コンテナに登録されるクラスはこのクラスローダによってロードされます。

実際にS2コンテナを構築する処理は、 S2ContainerFactory.Providerを実装したクラスに委譲します。 デフォルトの実装として、 S2ContainerFactory.DefaultProviderを提供します。 別の実装を使いたい場合は、 コンフィグレーションdiconファイルにS2ContainerFactory.Providerを実装したクラスをコンポーネントとして登録します。

コンフィグレーションdiconファイルとは、 S2コンテナおよびS2コンテナファクトリの振る舞いを変更するためのものです。 デフォルトでは、 クラスパス上のs2container.diconを読み込みます。 システムプロパティのorg.seasar.framework.container.factory.configにdiconファイルを指定することで、 そのファイルをコンフィグレーションdiconファイルとして使うことが出来ます。

コンフィグレーションdiconファイルは、 S2ContainerFactory.Configuratorを実装したクラスによって処理されます。 デフォルトの実装としてS2ContainerFactory.DefaultConfiguratorを提供します。 コンフィグレーションdiconファイルにS2ContainerFactory.Configuratorを実装したクラスをコンポーネントとして登録することで、 コンフィグレーションdiconファイルの処理方法を変更することが出来ます。

作成者:
higa, jundu

入れ子クラスの概要
static interface S2ContainerFactory.Configurator
          S2コンテナおよびS2コンテナファクトリの振る舞いを構成します。
static class S2ContainerFactory.DefaultConfigurator
          S2コンテナおよびS2コンテナファクトリの振る舞いを構成するデフォルトの実装クラスです。
static class S2ContainerFactory.DefaultProvider
          S2コンテナファクトリの振る舞いを提供する、 デフォルトの実装クラスです。
static interface S2ContainerFactory.Provider
          S2コンテナファクトリの振る舞いを提供します。
 
フィールドの概要
protected static S2Container configurationContainer
          コンフィグレーションdiconファイルから構築された、 コンフィグレーションS2コンテナです。
protected static boolean configuring
          S2コンテナファクトリが、 コンフィグレーション中かどうかを表します。
static String DEFAULT_BUILDER_NAME
          コンフィグレーションdiconファイルに登録する、 デフォルトのS2コンテナビルダのコンポーネント名を表す定数です。
protected static S2ContainerBuilder defaultBuilder
          デフォルトのS2コンテナビルダです。
static String FACTORY_CONFIG_KEY
          コンフィグレーションdiconファイルを指定するためのシステムプロパティ名を表す定数です。
static String FACTORY_CONFIG_PATH
          コンフィグレーションdiconファイルのデフォルトのファイル名を表す定数です。
protected static boolean initialized
          S2コンテナファクトリが、 初期化済みかどうかを表します。
protected static ThreadLocal processingPaths
          S2コンテナの構築中に処理中の、 設定ファイルパスを表します。
protected static S2ContainerFactory.Provider provider
          ファクトリプロバイダです。
 
コンストラクタの概要
S2ContainerFactory()
           
 
メソッドの概要
protected static void assertCircularInclude(S2Container container, String path)
          指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。
protected static void assertCircularInclude(S2Container container, String path, LinkedList paths)
          指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。
static void configure()
          コンフィグレーションdiconファイルに基づいて、 S2コンテナファクトリを構成します。
static void configure(String configFile)
          指定されたコンフィグレーションdiconファイルに基づき、 S2コンテナファクトリを構成します。
static S2Container create()
          設定ファイルを使用せず、 空のS2コンテナを構築して返します。
static S2Container create(String path)
          指定された設定ファイルに基づき、 S2コンテナを構築して返します。
static S2Container create(String path, ClassLoader classLoader)
          指定された設定ファイルに基づき、 指定されたクラスローダを使用してS2コンテナを構築して返します。
static void destroy()
          S2コンテナファクトリの構成をクリアして、 初期化前の状態に戻します。
protected static void enter(String path)
          処理中の設定ファイルパスを保持し、 循環インクルードを検出できるようにします。
static S2Container getConfigurationContainer()
          コンフィグレーションS2コンテナを返します。
protected static S2ContainerBuilder getDefaultBuilder()
          デフォルトS2コンテナビルダを返します。
protected static S2ContainerFactory.Provider getProvider()
          ファクトリプロバイダを返します。
static S2Container include(S2Container parent, String path)
          指定された設定ファイルからS2コンテナを構築し、 親S2コンテナに対してインクルードします。
protected static void leave(String path)
          処理中として保持していた設定ファイルのパスを取り除きます。
protected static void setDefaultBuilder(S2ContainerBuilder builder)
          デフォルトS2コンテナビルダを設定します。
protected static void setProvider(S2ContainerFactory.Provider p)
          ファクトリプロバイダを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FACTORY_CONFIG_KEY

public static final String FACTORY_CONFIG_KEY
コンフィグレーションdiconファイルを指定するためのシステムプロパティ名を表す定数です。

関連項目:
定数フィールド値

FACTORY_CONFIG_PATH

public static final String FACTORY_CONFIG_PATH
コンフィグレーションdiconファイルのデフォルトのファイル名を表す定数です。

関連項目:
定数フィールド値

DEFAULT_BUILDER_NAME

public static final String DEFAULT_BUILDER_NAME
コンフィグレーションdiconファイルに登録する、 デフォルトのS2コンテナビルダのコンポーネント名を表す定数です。

関連項目:
定数フィールド値

initialized

protected static boolean initialized
S2コンテナファクトリが、 初期化済みかどうかを表します。


configuring

protected static boolean configuring
S2コンテナファクトリが、 コンフィグレーション中かどうかを表します。


configurationContainer

protected static S2Container configurationContainer
コンフィグレーションdiconファイルから構築された、 コンフィグレーションS2コンテナです。


provider

protected static S2ContainerFactory.Provider provider
ファクトリプロバイダです。


defaultBuilder

protected static S2ContainerBuilder defaultBuilder
デフォルトのS2コンテナビルダです。


processingPaths

protected static ThreadLocal processingPaths
S2コンテナの構築中に処理中の、 設定ファイルパスを表します。

コンストラクタの詳細

S2ContainerFactory

public S2ContainerFactory()
メソッドの詳細

create

public static S2Container create(String path)
指定された設定ファイルに基づき、 S2コンテナを構築して返します。

S2コンテナの構築には、 スレッドのコンテキストクラスローダを使用します。

パラメータ:
path - 設定ファイルのパス
戻り値:
構築したS2コンテナ
例外:
EmptyRuntimeException - pathnullまたは空文字列の場合
関連項目:
S2ContainerFactory.Provider.create(String)

create

public static S2Container create(String path,
                                 ClassLoader classLoader)
指定された設定ファイルに基づき、 指定されたクラスローダを使用してS2コンテナを構築して返します。

パラメータ:
path - 設定ファイルのパス
classLoader - S2コンテナの構築に使用するクラスローダ
戻り値:
構築したS2コンテナ
例外:
EmptyRuntimeException - pathnullまたは空文字列の場合
関連項目:
S2ContainerFactory.Provider.create(String, ClassLoader)

create

public static S2Container create()
設定ファイルを使用せず、 空のS2コンテナを構築して返します。

戻り値:
構築したS2コンテナ
関連項目:
S2ContainerFactory.Provider.create()

include

public static S2Container include(S2Container parent,
                                  String path)
指定された設定ファイルからS2コンテナを構築し、 親S2コンテナに対してインクルードします。

パラメータ:
parent - 親となるS2コンテナ
path - 設定ファイルのパス
戻り値:
構築したS2コンテナ
関連項目:
S2ContainerFactory.Provider.include(S2Container, String)

configure

public static void configure()
コンフィグレーションdiconファイルに基づいて、 S2コンテナファクトリを構成します。

コンフィグレーションdiconファイルとして、 クラスパス上のs2container.diconを使用します。 ただし、 システムプロパティorg.seasar.framework.container.factory.configにdiconファイルが指定されていた場合、 そのdiconファイルを使用します。


configure

public static void configure(String configFile)
指定されたコンフィグレーションdiconファイルに基づき、 S2コンテナファクトリを構成します。

パラメータ:
configFile - コンフィグレーションdiconファイル

destroy

public static void destroy()
S2コンテナファクトリの構成をクリアして、 初期化前の状態に戻します。


getConfigurationContainer

public static S2Container getConfigurationContainer()
コンフィグレーションS2コンテナを返します。

戻り値:
現在のコンフィグレーションS2コンテナ

getProvider

protected static S2ContainerFactory.Provider getProvider()
ファクトリプロバイダを返します。

戻り値:
ファクトリプロバイダ

setProvider

protected static void setProvider(S2ContainerFactory.Provider p)
ファクトリプロバイダを設定します。

パラメータ:
p - ファクトリプロバイダ

getDefaultBuilder

protected static S2ContainerBuilder getDefaultBuilder()
デフォルトS2コンテナビルダを返します。

戻り値:
デフォルトS2コンテナビルダ

setDefaultBuilder

protected static void setDefaultBuilder(S2ContainerBuilder builder)
デフォルトS2コンテナビルダを設定します。

パラメータ:
builder - デフォルトS2コンテナビルダ

enter

protected static void enter(String path)
処理中の設定ファイルパスを保持し、 循環インクルードを検出できるようにします。

もしも既に処理中のパスが指定された場合、 循環インクルードとしてCircularIncludeRuntimeExceptionをスローします。

パラメータ:
path - 処理中の設定ファイルパス

leave

protected static void leave(String path)
処理中として保持していた設定ファイルのパスを取り除きます。

パラメータ:
path - 取り除く設定ファイルのパス

assertCircularInclude

protected static void assertCircularInclude(S2Container container,
                                            String path)
指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。

パラメータ:
container - 基点となるS2コンテナ
path - 設定ファイルのパス

assertCircularInclude

protected static void assertCircularInclude(S2Container container,
                                            String path,
                                            LinkedList paths)
指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。

パラメータ:
container - 確認対象のS2コンテナ
path - 設定ファイルのパス
paths - パスのインクルード経路


Copyright © 2004-2007 The Seasar Foundation. All Rights Reserved.