パッケージ com.lmt.lib.bms

クラス BmsMaterialFileFinder


  • public class BmsMaterialFileFinder
    extends BmsObjectFinder<Path,​Path,​String>
    ファイル拡張子別の素材ファイル検索アルゴリズムの実装クラスです。

    当クラスを使用することで、異なる拡張子のファイル名を検索するアルゴリズムを簡略化することができます。 例えば、メタ情報に音声ファイル "vocal.wav" と記述され、実際に存在するファイルが "vocal.ogg" だったとしても 実ファイル名のパスを容易に解決することが可能になります。この場合、以下のように記述します。

     BmsMaterialFileFinder finder = new BmsMaterialFileFinder("wav", "ogg");
     Path actualFilePath = finder.find(Path.of("vocal.wav"));
     System.out.printf("path=%s\n", actualFilePath);  // path=vocal.ogg
    導入されたバージョン:
    0.11.0
    • コンストラクタの詳細

      • BmsMaterialFileFinder

        public BmsMaterialFileFinder​(String... extensions)
        1個以上の拡張子を指定して検索オブジェクトを構築します。

        拡張子には"."を含めないでください。また、Linux等の大文字小文字を区別するファイルシステムを持つ プラットフォームでは大文字・小文字の両方を指定してください。

        パラメータ:
        extensions - 候補データとなる拡張子一覧
        例外:
        NullPointerException - extensionsにnullが含まれる
        IllegalArgumentException - extensionsの要素に空文字列が含まれる
        IllegalArgumentException - extensionsが0件
      • BmsMaterialFileFinder

        public BmsMaterialFileFinder​(List<String> extensions)
        拡張子のリストを指定して検索オブジェクトを構築します。

        拡張子には"."を含めないでください。また、Linux等の大文字小文字を区別するファイルシステムを持つ プラットフォームでは大文字・小文字の両方を指定してください。

        パラメータ:
        extensions - 拡張子のリスト
        例外:
        NullPointerException - extensionsがnull
        NullPointerException - extensionsの要素にnullが含まれる
        IllegalArgumentException - extensionsに空文字列が含まれる
        IllegalArgumentException - extensionsが0件
    • メソッドの詳細

      • doFind

        protected Path doFind​(Path input,
                              String candidate)
        ファイルパスの拡張子を指定候補の拡張子に置き換え、ファイルの存在確認を行います。

        拡張子を置き換えたファイルパスで Files#isRegularFile によるファイルの存在確認を行い、 trueが返ってきた場合に「ファイルあり」と判定し、拡張子置き換え後のファイルパスを返します。

        定義:
        doFind クラス内 BmsObjectFinder<Path,​Path,​String>
        パラメータ:
        input - 検索対象のファイルパス
        candidate - 候補の拡張子
        戻り値:
        ファイル存在時、置き換え後拡張子のファイルパス。未存在時はnull。
      • makeCandidatePath

        protected static Path makeCandidatePath​(Path inputPath,
                                                String extension)
        ファイル名の拡張子を置き換えたパスを生成します。
        パラメータ:
        inputPath - 元のファイルパス
        extension - 置き換え後の拡張子
        戻り値:
        拡張子置き換え後のファイルパス