モジュール java.compiler
パッケージ javax.tools

クラスForwardingJavaFileManager<M extends JavaFileManager>

  • 型パラメータ:
    M - このオブジェクトによって転送されるファイル・マネージャの種類
    すべての実装されたインタフェース:
    Closeable, Flushable, AutoCloseable, JavaFileManager, OptionChecker

    public class ForwardingJavaFileManager<M extends JavaFileManager>
    extends Object
    implements JavaFileManager
    指定されたファイル・マネージャに呼出しを転送します。 このクラスのサブクラスは、これらのメソッドの一部をオーバーライドする可能性があります。また、追加のフィールドおよびメソッドを提供する可能性もあります。
    導入されたバージョン:
    1.6
    • フィールドの詳細

      • fileManager

        protected final M extends JavaFileManager fileManager
        すべてのメソッドが委譲される、委譲先のファイル・マネージャです。
    • コンストラクタの詳細

      • ForwardingJavaFileManager

        protected ForwardingJavaFileManager​(M fileManager)
        ForwardingJavaFileManagerの新しいインスタンスを生成します。
        パラメータ:
        fileManager - このファイル・マネージャに委譲される対象
    • メソッドの詳細

      • getClassLoader

        public ClassLoader getClassLoader​(JavaFileManager.Location location)
        インタフェースからコピーされた説明: JavaFileManager
        指定されたパッケージ指向のロケーションからプラグインをロードするためのクラス・ローダーを返します。 たとえば、注釈プロセッサをロードするには、コンパイラは、ANNOTATION_PROCESSOR_PATHの場所のクラス・ローダーを要求します。
        定義:
        getClassLoader、インタフェース: JavaFileManager
        パラメータ:
        location - 場所
        戻り値:
        指定の場所のクラス・ローダー。指定の場所からプラグインをロードできない場合、または未知の場所が指定された場合はnull
        例外:
        SecurityException - 現在のセキュリティ・コンテキストでクラス・ローダーを作成できない場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • list

        public Iterable<JavaFileObject> list​(JavaFileManager.Location location,
                                             String packageName,
                                             Set<JavaFileObject.Kind> kinds,
                                             boolean recurse)
                                      throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたパッケージ指向のロケーションで、指定された条件に一致するすべてのファイル・オブジェクトを一覧表示します。 再帰処理が有効になっている場合、サブパッケージ内のファイル・オブジェクトも一覧表示されます。

        注: このファイル・マネージャにとって未知の場所が指定された場合も、nullが返されることはありません。 また、例外が生成されることもありません。

        定義:
        list、インタフェース: JavaFileManager
        パラメータ:
        location - 場所
        packageName - パッケージ名
        kinds - これらの種類のオブジェクトのみ返す
        recurse - trueの場合、サブパッケージが含まれる
        戻り値:
        指定された基準に一致するファイル・オブジェクトのIterable
        例外:
        IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • inferBinaryName

        public String inferBinaryName​(JavaFileManager.Location location,
                                      JavaFileObject file)
        インタフェースからコピーされた説明: JavaFileManager
        パッケージ指向のロケーションに基づいてファイル・オブジェクトのバイナリ名を推論します。 返されるバイナリ名は、『Java™言語仕様』に従った有効なバイナリ名ではないことがあります。
        定義:
        inferBinaryName、インタフェース: JavaFileManager
        パラメータ:
        location - 場所
        file - ファイル・オブジェクト
        戻り値:
        バイナリ名。指定された場所にファイル・オブジェクトが見つからない場合はnull
        例外:
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • isSameFile

        public boolean isSameFile​(FileObject a,
                                  FileObject b)
        インタフェースからコピーされた説明: JavaFileManager
        2つのファイル・オブジェクトを比較し、これらによって表される配下のオブジェクトが同じである場合はtrueを返します。
        定義:
        isSameFile、インタフェース: JavaFileManager
        パラメータ:
        a - ファイル・オブジェクト
        b - ファイル・オブジェクト
        戻り値:
        指定されたファイル・オブジェクトによって表される配下のオブジェクトが同じである場合はtrue
        例外:
        IllegalArgumentException - いずれかの引数が別のファイル・マネージャで作成された引数であり、このファイル・マネージャが外部ファイル・オブジェクトをサポートしていない場合
      • handleOption

        public boolean handleOption​(String current,
                                    Iterator<String> remaining)
        インタフェースからコピーされた説明: JavaFileManager
        1つのオプションを処理します。 currentがこのファイル・マネージャのオプションである場合は、remainingからそのオプションに対するすべての引数を使用し、trueを返します。そうでない場合はfalseを返します。
        定義:
        handleOption、インタフェース: JavaFileManager
        パラメータ:
        current - 現在のオプション
        remaining - 残りのオプション
        戻り値:
        このオプションがこのファイル・マネージャで処理された場合はtrue、そうでない場合はfalse
        例外:
        IllegalArgumentException - このファイル・マネージャに対するこのオプションが不正に使用された場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • getJavaFileForInput

        public JavaFileObject getJavaFileForInput​(JavaFileManager.Location location,
                                                  String className,
                                                  JavaFileObject.Kind kind)
                                           throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたパッケージ指向のロケーションで指定された種類の指定されたクラスを表す入力用の「ファイル・オブジェクト」を返します。
        定義:
        getJavaFileForInput、インタフェース: JavaFileManager
        パラメータ:
        location - 場所
        className - クラスの名前
        kind - ファイルの種類。SOURCEまたはCLASSのいずれかである必要がある
        戻り値:
        ファイル・オブジェクト。ファイルが存在しない場合はnullが返される可能性がある
        例外:
        IllegalArgumentException - そのロケーションがこのファイル・マネージャに知られておらず、ファイル・マネージャが不明なロケーションをサポートしていない場合、またはその種類が有効でない場合、またはそのロケーションがモジュール指向のロケーションである場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
        IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • getJavaFileForOutput

        public JavaFileObject getJavaFileForOutput​(JavaFileManager.Location location,
                                                   String className,
                                                   JavaFileObject.Kind kind,
                                                   FileObject sibling)
                                            throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたパッケージ指向のロケーションで指定された種類の指定されたクラスを表す出力用の「ファイル・オブジェクト」を返します。

        このファイル・マネージャは、オプションとして、兄弟ウィジェットを出力先のヒントとして使用する可能性があります。 このヒントの厳密なセマンティックスは指定されません。 たとえばJDKコンパイラjavacは、クラス・ファイルの出力ディレクトリが指定されていない場合、ソース・ファイルと同じディレクトリにクラス・ファイルを配置します。 この処理を簡便化するため、javacは、このメソッドを呼び出すとき、ソース・ファイルを兄弟ウィジェットとして指定することがあります。

        定義:
        getJavaFileForOutput、インタフェース: JavaFileManager
        パラメータ:
        location - パッケージ志向のロケーション
        className - クラスの名前
        kind - ファイルの種類。SOURCEまたはCLASSのいずれかである必要がある
        sibling - 配置のヒントとして使用されるファイル・オブジェクト。次も可: null
        戻り値:
        出力用ファイル・オブジェクト
        例外:
        IllegalArgumentException - 兄弟がこのファイル・マネージャに知られていない場合、またはこのファイル・マネージャにロケーションが分からず、ファイル・マネージャが未知のロケーションをサポートしていない場合、または種類が有効でない場合、またはロケーションが出力ロケーションでない場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
        IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • getFileForInput

        public FileObject getFileForInput​(JavaFileManager.Location location,
                                          String packageName,
                                          String relativeName)
                                   throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたパッケージ指向のロケーションにある指定されたパッケージ内の指定された「相対名」を表す入力用の「ファイル・オブジェクト」を返します。

        返されたオブジェクトがソース・ファイルまたはクラス・ファイルを表す場合、これはJavaFileObjectのインスタンスである必要があります。

        非公式には、このメソッドで返されるファイル・オブジェクトは、場所、パッケージ名、および相対名を連結した場所にあります。 たとえば、SOURCE_PATHの場所にあるcom.sun.tools.javacパッケージ内のプロパティ・ファイルresources/compiler.propertiesを探している場合、次のようにしてこのメソッドを呼び出すことができます。

        getFileForInput(SOURCE_PATH, "com.sun.tools.javac", "resources/compiler.properties");

        この呼出しがWindows上で実行され、SOURCE_PATHが"C:\Documents and Settings\UncleBob\src\share\classes"に設定されていた場合、有効な結果は、ファイル"C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"を表すファイル・オブジェクトになります。

        定義:
        getFileForInput、インタフェース: JavaFileManager
        パラメータ:
        location - パッケージ志向のロケーション
        packageName - パッケージ名
        relativeName - 相対名
        戻り値:
        ファイル・オブジェクト。ファイルが存在しない場合はnullが返される可能性がある
        例外:
        IllegalArgumentException - ロケーションがこのファイル・マネージャに知られておらず、ファイル・マネージャが不明なロケーションをサポートしていない場合、またはrelativeNameが有効でない場合、またはロケーションがモジュール指向のロケーションである場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
        IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • getFileForOutput

        public FileObject getFileForOutput​(JavaFileManager.Location location,
                                           String packageName,
                                           String relativeName,
                                           FileObject sibling)
                                    throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたロケーションの指定されたパッケージ内の指定された「相対名」を表す出力用の「ファイル・オブジェクト」を返します。

        このファイル・マネージャは、オプションとして、兄弟ウィジェットを出力先のヒントとして使用する可能性があります。 このヒントの厳密なセマンティックスは指定されません。 たとえばJDKコンパイラjavacは、クラス・ファイルの出力ディレクトリが指定されていない場合、ソース・ファイルと同じディレクトリにクラス・ファイルを配置します。 この処理を簡便化するため、javacは、このメソッドを呼び出すとき、ソース・ファイルを兄弟ウィジェットとして指定することがあります。

        返されたオブジェクトがソース・ファイルまたはクラス・ファイルを表す場合、これはJavaFileObjectのインスタンスである必要があります。

        非公式には、このメソッドで返されるファイル・オブジェクトは、場所、パッケージ名、および相対名を連結した場所か、兄弟引数の次にあります。 例については、getFileForInputを参照してください。

        定義:
        getFileForOutput、インタフェース: JavaFileManager
        パラメータ:
        location - 出力ロケーション
        packageName - パッケージ名
        relativeName - 相対名
        sibling - 配置のヒントとして使用されるファイル・オブジェクト。次も可: null
        戻り値:
        ファイル・オブジェクト
        例外:
        IllegalArgumentException - 兄弟がこのファイル・マネージャに知られていない場合、またはこのファイル・マネージャにロケーションが知られておらず、ファイル・マネージャが未知のロケーションをサポートしていない場合、またはrelativeNameが有効でない場合、またはそのロケーションが出力ロケーションでない場合
        IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
        IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      • getLocationForModule

        public JavaFileManager.Location getLocationForModule​(JavaFileManager.Location location,
                                                             String moduleName)
                                                      throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        モジュール指向のロケーションまたは出力ロケーションのいずれかである、ロケーション内の名前付きモジュールのロケーションを取得します。 指定されたロケーションが出力ロケーションである場合、結果が出力ロケーションになります。またはパッケージ指向のロケーションになります。
        定義:
        インタフェースJavaFileManager内のgetLocationForModule
        パラメータ:
        location - モジュール指向のロケーション
        moduleName - 見つかるモジュールの名前
        戻り値:
        指定されたモジュールのロケーション
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        9
      • getLocationForModule

        public JavaFileManager.Location getLocationForModule​(JavaFileManager.Location location,
                                                             JavaFileObject fo)
                                                      throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        特定のファイルが格納されているモジュールのロケーションを取得します。ロケーションは、モジュール指向のロケーションまたは出力ロケーションのいずれかです。 指定されたロケーションが出力ロケーションである場合、結果が出力ロケーションになります。またはパッケージ指向のロケーションになります。
        定義:
        インタフェースJavaFileManager内のgetLocationForModule
        パラメータ:
        location - モジュール指向のロケーション
        fo - ファイル
        戻り値:
        ファイルを含むモジュール
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        9
      • getServiceLoader

        public <S> ServiceLoader<S> getServiceLoader​(JavaFileManager.Location location,
                                                     Class<S> service)
                                              throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたロケーションから特定のサービス・クラスのサービス・ローダーを取得します。 ロケーションがモジュール指向のロケーションである場合、サービス・ローダーはそのロケーションにあるモジュール内のサービス宣言を使用します。 それ以外の場合は、パッケージ指向のロケーションを使用してサービス・ローダーが作成されます。この場合、サービスはMETA-INF/servicesのプロバイダ構成ファイルを使用して決定されます。
        定義:
        インタフェースJavaFileManager内のgetServiceLoader
        型パラメータ:
        S - サービス・クラス
        パラメータ:
        location - モジュール指向のロケーション
        service - サービス・クラスのClassオブジェクト
        戻り値:
        指定されたサービス・クラスのサービス・ローダー
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        9
      • inferModuleName

        public String inferModuleName​(JavaFileManager.Location location)
                               throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        getLocationForModuleまたはlistModuleLocationsから返されるモジュールの名前をそのロケーションから推測します。
        定義:
        インタフェースJavaFileManager内のinferModuleName
        パラメータ:
        location - モジュールを表すパッケージ指向のロケーション
        戻り値:
        モジュールの名前
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        9
      • listLocationsForModules

        public Iterable<Set<JavaFileManager.Location>> listLocationsForModules​(JavaFileManager.Location location)
                                                                        throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        モジュール指向のロケーションまたは出力ロケーションのすべてのモジュールのロケーションを一覧表示します。 指定されたロケーションが出力である場合、またはパッケージ指向のロケーションになる場合、返されるロケーションは出力ロケーションになります。
        定義:
        インタフェースJavaFileManager内のlistLocationsForModules
        パラメータ:
        location - モジュールをリストするモジュール指向のロケーション
        戻り値:
        モジュールを含む一連のロケーションのセット
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        9
      • contains

        public boolean contains​(JavaFileManager.Location location,
                                FileObject fo)
                         throws IOException
        インタフェースからコピーされた説明: JavaFileManager
        指定されたファイル・オブジェクトが指定されたロケーション"に含まれた"かどうかを決定します。

        パッケージ指向のロケーションでは、packageNamerelativeNameの値が存在する場合、次の呼び出しのいずれかがsameファイル・オブジェクトを返すようにファイル・オブジェクトが格納されます:

             getFileForInput(location, packageName, relativeName)
             getFileForOutput(location, packageName, relativeName, null)
         

        モジュール指向のロケーションでは、呼び出しによって取得される可能性のあるモジュールが存在する場合、ファイル・オブジェクトがそのロケーションに格納されます:

             getLocationForModule(location, moduleName)
         
        そのファイル・オブジェクトは、そのモジュールの(package-oriented)のロケーションに格納されます。

        定義:
        インタフェースJavaFileManager内のcontains
        パラメータ:
        location - ロケーション
        fo - ファイル・オブジェクト
        戻り値:
        ファイルがそのロケーションに含まれているかどうか
        例外:
        IOException - 結果を決定する際に問題がある場合
        導入されたバージョン:
        9