Package nablarch.core.repository
Class ConfigFileLoader
java.lang.Object
nablarch.core.repository.ConfigFileLoader
- All Implemented Interfaces:
ObjectLoader
設定ファイルから文字列の設定値を読み込むクラス。
このクラスで使用する特殊文字は '=' '#' '\' の3文字(下記参照)。
- デリミタ文字('=')
- デリミタ文字は'='のみで、空白(タブを含む)や":"も文字列の一部とみなす。
(いわゆるpropertiesファイルとは異なる。)
但し、キー及び値はそれぞれ前後の空白(タブを含む)をトリミングする。
(" A B "(スペースAスペースBスペース)という文字列は
"A B"(AスペースB)となる。キーの'A'と'a'は区別される。)
デリミタ文字'='で区切られた3つめ以降のトークンは無視する。
'='をキーまたは値に含めたい場合は前に'\'を付加する。 - コメント文字('#')
- コメント文字'#'を使用するとその行の以降の文字列はコメントとみなす。
'#'によるコメントを除去する処理は行連結の前に行われるので、
継続行中でも使用可能(下記「使用例」参照)。
'#'をキーまたは値に含めたい場合は前に'\'を付加する。 - 改行文字('\')
- キーと値のセットは行末に'\'を指定することによって行をまたがることが可能。
その場合'\'を除いた文字列と次の行の先頭の空白(タブを含む)を除いた
文字列を連結する。('\'を除いた文字列の後方の空白は維持する。)
キーまたは値の行末に'\'を含めたい場合は前に'\'を付加する。 - エスケープ文字('\')
- '\'を記述すると次の1文字を特殊文字ではなく一般文字として扱う。
'\'をキーまたは値に含めたい場合は前に'\'を付加する。
# キー="key"、値="value"の場合 key = value # comment key = value = comment # キー="key"、値="value1 = value2"の場合 key = value1 \= value2 #comment key = \ value1 \= value2 # キー="key"、値="value1,value2,value3"の場合 key = value1,value2,value3 # comment key = value1,\ value2,\ value3 # comment key = value1,\ # comment value2,\ # comment value3 # comment # 下記はNG。 key = value1, # comment \ value2, # comment \ value3 # commentなお、本クラスはデフォルトでは設定ファイルをUTF-8エンコーディングで読み込む。 エンコーディングを変更する場合は、ConfigFileクラスのencodingプロパティにエンコーディングを設定してから load() メソッドを呼び出すこと。
- See Also:
-
Constructor Summary
ConstructorDescriptionConfigFileLoader
(InputStream stream) コンストラクタ。ConfigFileLoader
(InputStream stream, String encoding) コンストラクタ。ConfigFileLoader
(String url) コンストラクタ。ConfigFileLoader
(String url, String encoding) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionload()
SystemRepository
に登録するオブジェクトを読み込む。
キーがオブジェクトの名前、Valueを読み込むオブジェクトであるMapを作成し、返却する。
-
Constructor Details
-
ConfigFileLoader
コンストラクタ。- Parameters:
url
- ロードするファイル。
-
ConfigFileLoader
コンストラクタ。- Parameters:
url
- ロードするファイルを表すURL表現。encoding
- ファイルのエンコーディング。
-
ConfigFileLoader
コンストラクタ。- Parameters:
stream
- ロードするファイルのストリーム。
-
ConfigFileLoader
コンストラクタ。- Parameters:
stream
- ロードするファイルのストリーム。encoding
- ファイルのエンコーディング。
-
-
Method Details
-
load
SystemRepository
に登録するオブジェクトを読み込む。
キーがオブジェクトの名前、Valueを読み込むオブジェクトであるMapを作成し、返却する。
ConfigFileLoaderでは、プロパティファイルに書かれたキーと値の組合せを そのままMapを返す。 このため、値は常に文字列となる。- Specified by:
load
in interfaceObjectLoader
- Returns:
- キーがオブジェクトの名前、Valueが読み込むオブジェクトであるMap。
-