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

クラスForwardingJavaFileManager<M extends JavaFileManager>

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

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

特に明記しないかぎり、このクラス内の"「このファイル・マネージャ」"への参照は、delegate file managerに間接的に参照されるものとして解釈する必要があります。

導入されたバージョン:
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()が呼び出され、このファイル・マネージャを再度開くことができない場合
    • hasLocation

      public boolean hasLocation(JavaFileManager.Location location)
      インタフェースからコピーされた説明: JavaFileManager
      このファイル・マネージャにとって既知の場所であるかどうかを判断します。
      定義:
      hasLocation、インタフェース: JavaFileManager
      パラメータ:
      location - 場所
      戻り値:
      既知の場所である場合はtrue
    • isSupportedOption

      public int isSupportedOption(String option)
      インタフェースからコピーされた説明: OptionChecker
      指定されたオプションがサポートされているかどうかを調べ、サポートされている場合はそのオプションがとる引数の数を特定します。
      定義:
      isSupportedOption、インタフェース: OptionChecker
      パラメータ:
      option - オプション
      戻り値:
      指定されたオプションがとる引数の数。そのオプションがサポートされていない場合は -1
    • 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()が呼び出され、このファイル・マネージャを再度開くことができない場合
    • getJavaFileForOutputForOriginatingFiles

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

      提供されているoriginatingFilesは、このメソッドによって作成されたファイルのコンテンツの作成に使用された、不特定の方法で行われたファイルを表します。 originatingElements in Filer.createSourceFile(java.lang.CharSequence, javax.lang.model.element.Element...)を参照してください。 Elements.getFileObjectOf(javax.lang.model.element.Element)を使用して、ElementFileObjectに変換できます。

      定義:
      インタフェースJavaFileManager内のgetJavaFileForOutputForOriginatingFiles
      実装要件:
      ForwardingJavaFileManagerのサブクラスがgetJavaFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject)メソッドをオーバーライドする場合、このメソッドはJavaFileManager.getJavaFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject...)の一般的な契約に従ってこのメソッドに委任します。 サブクラスがメソッドをオーバーライドしない場合、コールはfileManagerに委任されます。
      パラメータ:
      location - パッケージ志向のロケーション
      className - クラスの名前
      kind - ファイルの種類。SOURCEまたはCLASSのいずれかである必要がある
      originatingFiles - この新しく作成されたファイルに寄与するファイル。nullは空のoriginatingFilesと同等で、既知の元のファイルがないことを意味
      戻り値:
      出力用ファイル・オブジェクト
      例外:
      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()が呼び出され、このファイル・マネージャを再度開くことができない場合
    • getFileForOutputForOriginatingFiles

      public FileObject getFileForOutputForOriginatingFiles(JavaFileManager.Location location, String packageName, String relativeName, FileObject... originatingFiles) throws IOException
      指定されたロケーションの指定されたパッケージ内の指定された「相対名」を表す出力用の「ファイル・オブジェクト」を返します。

      提供されているoriginatingFilesは、このメソッドによって作成されたファイルのコンテンツの作成に使用された、不特定の方法で行われたファイルを表します。 originatingElements in Filer.createResource(javax.tools.JavaFileManager.Location, java.lang.CharSequence, java.lang.CharSequence, javax.lang.model.element.Element...)を参照してください。 Elements.getFileObjectOf(javax.lang.model.element.Element)を使用して、ElementFileObjectに変換できます。

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

      このメソッドによって返されるファイル・オブジェクトは、ロケーション、パッケージ名および相対名、またはoriginatingFilesから推測されるロケーションの連結にあります。 例については、getFileForInputを参照してください。

      定義:
      インタフェースJavaFileManager内のgetFileForOutputForOriginatingFiles
      実装要件:
      ForwardingJavaFileManagerのサブクラスがgetFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject)メソッドをオーバーライドする場合、このメソッドはJavaFileManager.getFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject...)の一般的な契約に従ってこのメソッドに委任します。 サブクラスがメソッドをオーバーライドしない場合、コールはfileManagerに委任されます。
      パラメータ:
      location - 出力ロケーション
      packageName - パッケージ名
      relativeName - 相対名
      originatingFiles - この新しく作成されたファイルに寄与するファイル。nullは空のoriginatingFilesと同等で、既知の元のファイルがないことを意味
      戻り値:
      ファイル・オブジェクト
      例外:
      IllegalArgumentException - 兄弟がこのファイル・マネージャに知られていない場合、またはこのファイル・マネージャにロケーションが知られておらず、ファイル・マネージャが未知のロケーションをサポートしていない場合、またはrelativeNameが有効でない場合、またはそのロケーションが出力ロケーションでない場合
      IllegalStateException - JavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      IOException - 入出力エラーが発生した場合、またはJavaFileManager.close()が呼び出され、このファイル・マネージャを再度開くことができない場合
      関連項目:
    • flush

      public void flush() throws IOException
      インタフェースからコピーされた説明: JavaFileManager
      このファイル・マネージャによって直接的または間接的に開かれた出力用リソースがあれば、それをフラッシュします。 閉じられたファイル・マネージャをフラッシュしても、効果はありません。
      定義:
      flush、インタフェース: Flushable
      定義:
      flush、インタフェース: JavaFileManager
      例外:
      IOException - 入出力エラーが発生した場合
      関連項目:
    • close

      public void close() throws IOException
      インタフェースからコピーされた説明: JavaFileManager
      このファイル・マネージャによって直接的または間接的に開かれたリソースがあれば、それを解放します。 すると、このファイル・マネージャが無効になり、その後このオブジェクト上で行われるメソッド呼び出しや、このオブジェクトを通して取得されるオブジェクトは、明示的に許可されていないかぎり未定義になります。 ただし、すでに閉じられたファイル・マネージャを閉じても、効果はありません。
      定義:
      close、インタフェース: AutoCloseable
      定義:
      close、インタフェース: Closeable
      定義:
      close、インタフェース: JavaFileManager
      例外:
      IOException - 入出力エラーが発生した場合
      関連項目:
    • 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