Class ConfigFileLoader

java.lang.Object
nablarch.core.repository.ConfigFileLoader
All Implemented Interfaces:
ObjectLoader

@Published(tag="architect") public class ConfigFileLoader extends Object implements 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() メソッドを呼び出すこと。

Author:
Koichi Asano
See Also:
  • Constructor Details

    • ConfigFileLoader

      public ConfigFileLoader(String url)
      コンストラクタ。
      Parameters:
      url - ロードするファイル。
    • ConfigFileLoader

      public ConfigFileLoader(String url, String encoding)
      コンストラクタ。
      Parameters:
      url - ロードするファイルを表すURL表現。
      encoding - ファイルのエンコーディング。
    • ConfigFileLoader

      public ConfigFileLoader(InputStream stream)
      コンストラクタ。
      Parameters:
      stream - ロードするファイルのストリーム。
    • ConfigFileLoader

      public ConfigFileLoader(InputStream stream, String encoding)
      コンストラクタ。
      Parameters:
      stream - ロードするファイルのストリーム。
      encoding - ファイルのエンコーディング。
  • Method Details

    • load

      public Map<String,Object> load()
      SystemRepositoryに登録するオブジェクトを読み込む。
      キーがオブジェクトの名前、Valueを読み込むオブジェクトであるMapを作成し、返却する。
      ConfigFileLoaderでは、プロパティファイルに書かれたキーと値の組合せを そのままMapを返す。 このため、値は常に文字列となる。
      Specified by:
      load in interface ObjectLoader
      Returns:
      キーがオブジェクトの名前、Valueが読み込むオブジェクトであるMap。