org.opengion.fukurou.util

## クラス FileMap

- java.lang.Object
- - org.opengion.fukurou.util.FileMap

- すべての実装されたインタフェース:
    Cleanable

      public final class FileMap
      extends Object
      implements Cleanable

       FileMap は、ファイルを読み取って、キー情報から、ファイルへのリンクを作成するための
       情報を返します。
       ファイルそのものは、指定のディレクトリをすべて読み取り、拡張子以外の部分を、キーとして
       登録します。(キーは大文字に統一されます。)
       実際のファイルの拡張子は、リンク作成時の処理で付与されます。
       例えば、HELPファイルを、XXXX.html や、XXXX.htm 、XXXX.pdf など、色々な形態で作成した
       場合でも、キーとしては、XXXX で存在チェックをかけることができるようになります。

       ファイルは、一旦すべて読み取ってメモリ上で管理されます。
       ディレクトリの再読取が必要な場合は、オブジェクトを再作成する必要があります。

  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `FileMap()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `clear()` 初期化(クリア)します。
    `boolean` | `exists(String key)` 指定のキーのファイルが存在しているかどうかを返します。
    `String` | `getFilename(String[] keys)` キーに対応したファイル名を返します。
    `void` | `init(String dir)` 読み取るディレクトリを指定して、ファイルマップを構築します。
    `void` | `init(String dir, Set resourcePaths)` すでに読み取った Set オブジェクトを指定して、ファイルマップを構築します。
    `void` | `init(String dir, String path)` 読み取るディレクトリを指定して、ファイルマップを構築します。
    `void` | `init(String dir, String path, Set resourcePaths)` すでに読み取った Set オブジェクトを指定して、ファイルマップを構築します。
    `boolean` | `isInit()` 初期化が完了しているかどうかを、返します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### FileMap

          public FileMap()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### init

          public void init(String dir)

      読み取るディレクトリを指定して、ファイルマップを構築します。 このディレクトリは、OSに対する物理アドレスになります。
      パラメータ:
        `dir` - ディレクトリ // * @throws IllegalArgumentException 引数の dir が存在しないか、ディレクトリ出ない場合。
      変更履歴:

        5.5.4.2 (2012/07/13) makeFileMap() を直接コンストラクターとして使用
        6.3.8.4 (2015/10/09) 別のコンストラクターを呼ぶようにします。
        6.3.8.5 (2015/10/16) コンストラクターで、Exception を throw しないようにします。
        6.3.9.0 (2015/11/06) コンストラクターを止めて、初期化メソッドに変更する。

    - #### init

          public void init(String dir,
                           String path)

      読み取るディレクトリを指定して、ファイルマップを構築します。 このディレクトリは、OSに対する物理アドレスになります。
      パラメータ:
        `dir` - ディレクトリ
        `path` - ファイル名に付与するパス文字列 // * @throws IllegalArgumentException 引数の dir が存在しないか、ディレクトリ出ない場合。
      変更履歴:

        5.5.4.2 (2012/07/13) makeFileMap() を直接コンストラクターとして使用
        6.3.8.4 (2015/10/09) 別のコンストラクターを呼ぶようにします。
        6.3.8.5 (2015/10/16) コンストラクターで、Exception を throw しないようにします。
        6.3.9.0 (2015/11/06) コンストラクターを止めて、初期化メソッドに変更する。

    - #### init

          public void init(String dir,
                           Set resourcePaths)

      すでに読み取った Set オブジェクトを指定して、ファイルマップを構築します。 これは、ServletContext を利用した、META-INF/resources からの読み取り対応になります。 一覧を取得するのは、ServletContext 関連の実装が必要になるため、fukurou では java の一般的なオブジェクトである Set を処理するだけとします。 ファイル名は、dir を削除した残りで構築します。フォルダ階層を含みます。 Mapのキーは、フォルダ階層を含まない、ファイル名のみとします。 つまり、フォルダ階層を持ってリソースを用意しておいても、キーとしては、 ファイル名のみを使用します。
      パラメータ:
        `dir` - ディレクトリ
        `resourcePaths` - リソースパス // * @throws IllegalArgumentException 引数の dir や、resourcePaths が、null の場合
      変更履歴:

        5.5.4.2 (2012/07/13) 新規作成
        6.3.8.4 (2015/10/09) 別のコンストラクターを呼ぶようにします。
        6.3.8.5 (2015/10/16) コンストラクターで、Exception を throw しないようにします。
        6.3.9.0 (2015/11/06) コンストラクターを止めて、初期化メソッドに変更する。

    - #### init

          public void init(String dir,
                           String path,
                           Set resourcePaths)

      すでに読み取った Set オブジェクトを指定して、ファイルマップを構築します。 これは、ServletContext を利用した、META-INF/resources からの読み取り対応になります。 一覧を取得するのは、ServletContext 関連の実装が必要になるため、fukurou では java の一般的なオブジェクトである Set を処理するだけとします。 ファイル名は、dir を削除した残りで構築します。フォルダ階層を含みます。 Mapのキーは、フォルダ階層を含まない、ファイル名のみとします。 つまり、フォルダ階層を持ってリソースを用意しておいても、キーとしては、 ファイル名のみを使用します。
      パラメータ:
        `dir` - ディレクトリ
        `path` - ファイル名に付与するパス文字列
        `resourcePaths` - リソースパス // * @throws IllegalArgumentException 引数の dir や、resourcePaths が、null の場合
      変更履歴:

        5.5.4.2 (2012/07/13) 新規作成
        6.3.8.4 (2015/10/09) 別のコンストラクターを呼ぶようにします。
        6.3.8.5 (2015/10/16) コンストラクターで、Exception を throw しないようにします。
        6.3.9.0 (2015/11/06) null になっている可能性があるメソッドの戻り値のnullチェックを追加。
        6.3.9.0 (2015/11/06) コンストラクターを止めて、初期化メソッドに変更する。
        6.4.2.0 (2016/01/29) StringUtil にあったメソッドを移動するとともに、メソッド名を、ogThrowMsgPrint → ogThrowMsgPrint に変更。
        6.4.3.2 (2016/02/19) 指定のフォルダが存在しない場合、作成します。

    - #### exists

          public boolean exists(String key)

      指定のキーのファイルが存在しているかどうかを返します。 存在している場合は、true , 存在していない場合は、false になります。
      パラメータ:
        `key` - 指定のキー
      戻り値:
        存在しているかどうか(true:存在する/false:存在しない) // * @throws IllegalArgumentException キーが指定されていません。
      変更履歴:

        6.3.8.5 (2015/10/16) Exception を throw しないようにします。
        6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。

    - #### getFilename

          public String getFilename(String[] keys)

      キーに対応したファイル名を返します。 指定のキーに対するファイル名が存在しない場合は、null を返します。 引数を可変長引数にして、前から順番にMapを調べます。最初に、null でない 値を返します。最後まで一致しなければ、null を返します。 引数のキーが、nullや、ゼロ配列の場合も、nullになります。
      パラメータ:
        `keys` - 指定のキー配列(可変長引数)
      戻り値:
        ファイル名(ディレクトリパスは含まず)、存在しない場合は、null
      変更履歴:

        6.3.8.4 (2015/10/09) FileMap のコンストラクタ変更に伴う対応。
        6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。

    - #### isInit

          public boolean isInit()

      初期化が完了しているかどうかを、返します。 完了している場合は、true を返します。未完了、または、clear() 実行後は、falseです。 インスタンスは、init処理が完了するまでは、false が返る為、簡易的な同期処理は 行われています。 (内部のMapへの書き込みは、init処理でのみ行われます。)
      戻り値:
        初期化が完了していればtrue
      変更履歴:

        6.3.9.0 (2015/11/06) 新規作成。
        6.4.3.2 (2016/02/19) initFlagを廃止し、直接 Mapが空かどうかで判定します。。

    - #### clear

          public void clear()

      初期化(クリア)します。
      定義:
        `clear` インタフェース内 `Cleanable`
      変更履歴:

        6.3.9.0 (2015/11/06) 新規作成。
        6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.