クラスSimpleJavaFileObject

java.lang.Object
javax.tools.SimpleJavaFileObject
すべての実装されたインタフェース:
FileObject, JavaFileObject

public class SimpleJavaFileObject extends Object implements JavaFileObject
JavaFileObjectに含まれる大部分のメソッドに対して、簡単な実装を提供します。 このクラスは、サブクラス化し、JavaFileObject実装の基礎として使用されるように設計されています。 サブクラスは、JavaFileObjectの一般規約に準拠している限りは、このクラスのすべてのメソッドの実装および仕様をオーバーライドできます。
導入されたバージョン:
1.6
  • ネストされたクラスのサマリー

    インタフェースjavax.tools.JavaFileObjectで宣言されたネストされたクラス/インタフェース

    JavaFileObject.Kind
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final JavaFileObject.Kind
    このファイル・オブジェクトの種類です。
    protected final URI
    このファイル・オブジェクトのURIです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    指定されたURIを使って、指定された種類のSimpleJavaFileObjectを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    このファイル・オブジェクトを削除します。
    forSource(URI uri, String content)
    指定されたソース・コンテンツを表すJavaFileObjectを作成します。
    このファイル・オブジェクトで表されるクラスのアクセス・レベルに関するヒントを提供します。
    getCharContent(boolean ignoreEncodingErrors)
    このファイル・オブジェクトの文字コンテンツ(使用可能な場合)を返します。
    このファイル・オブジェクトの種類を返します。
    long
    このファイル・オブジェクトが最後に変更された時間を返します。
    このファイル・オブジェクトのわかりやすい名前を返します。
    このファイル・オブジェクトで表されるクラスの入れ子のレベルに関するヒントを提供します。
    boolean
    このファイル・オブジェクトに、指定された単純名および種類との互換性があるかどうかを調べます。
    このファイル・オブジェクトのInputStreamを返します。
    このファイル・オブジェクトのOutputStreamを返します。
    openReader(boolean ignoreEncodingErrors)
    このオブジェクトのリーダーを返します。
    このファイル・オブジェクトのライターを返します。
    このファイル・オブジェクトを識別するURIを返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • uri

      protected final URI uri
      このファイル・オブジェクトのURIです。
    • kind

      protected final JavaFileObject.Kind kind
      このファイル・オブジェクトの種類です。
  • コンストラクタの詳細

    • SimpleJavaFileObject

      protected SimpleJavaFileObject(URI uri, JavaFileObject.Kind kind)
      指定されたURIを使って、指定された種類のSimpleJavaFileObjectを構築します。
      パラメータ:
      uri - このファイル・オブジェクトのURI
      kind - このファイル・オブジェクトの種類
  • メソッドの詳細

    • toUri

      public URI toUri()
      インタフェースからコピーされた説明: FileObject
      このファイル・オブジェクトを識別するURIを返します。
      定義:
      toUri、インタフェースFileObject
      戻り値:
      URI
    • getName

      public String getName()
      インタフェースからコピーされた説明: FileObject
      このファイル・オブジェクトのわかりやすい名前を返します。 返される正確な値は指定されていませんが、実装は、ユーザーが指定した名前を保持するようになっています。 たとえば、ユーザーが"BobsApp\Test.java"というファイル名をコマンドラインに書き込む場合、このメソッドは "BobsApp\Test.java"を返し、toUriメソッドは file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.javaを返すことがあります。
      定義:
      getName、インタフェースFileObject
      戻り値:
      ユーザーが使いやすい名前
    • openInputStream

      public InputStream openInputStream() throws IOException
      このファイル・オブジェクトのInputStreamを返します。
      定義:
      openInputStream、インタフェースFileObject
      実装要件:
      この実装では、常にUnsupportedOperationExceptionがスローされます。
      戻り値:
      InputStream
      例外:
      IOException - 入出力エラーが発生した場合
    • openOutputStream

      public OutputStream openOutputStream() throws IOException
      このファイル・オブジェクトのOutputStreamを返します。
      定義:
      openOutputStream、インタフェースFileObject
      実装要件:
      この実装では、常にUnsupportedOperationExceptionがスローされます。
      戻り値:
      OutputStream
      例外:
      IOException - 入出力エラーが発生した場合
    • openReader

      public Reader openReader(boolean ignoreEncodingErrors) throws IOException
      このオブジェクトのリーダーを返します。 返されるリーダーは、復号化できないバイトをデフォルトの変換文字で置き換えます。 さらに、ignoreEncodingErrorsがtrueでなければ、診断情報を報告することもあります。
      定義:
      openReader、インタフェースFileObject
      実装要件:
      この実装では、getCharContent(boolean)の結果がReaderにラップされます。
      パラメータ:
      ignoreEncodingErrors - trueの場合はエンコーディング・エラーを無視
      戻り値:
      getCharContentの結果をラップするReader
      例外:
      IllegalStateException - このファイル・オブジェクトが、書込み可能かつ読取り不可である場合
      UnsupportedOperationException - この種類のファイル・オブジェクトが文字アクセスをサポートしない場合
      IOException - 入出力エラーが発生した場合
    • getCharContent

      public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException
      このファイル・オブジェクトの文字コンテンツ(使用可能な場合)を返します。 復号化できないバイトは、デフォルトの変換文字で置き換えられます。 さらに、ignoreEncodingErrorsがtrueでなければ、診断情報が報告されることもあります。
      定義:
      getCharContent、インタフェースFileObject
      実装要件:
      この実装では、常にUnsupportedOperationExceptionがスローされます。
      パラメータ:
      ignoreEncodingErrors - trueの場合はエンコーディング・エラーを無視
      戻り値:
      使用可能な場合はCharSequence、そうではない場合はnull
      例外:
      IOException - 入出力エラーが発生した場合
    • openWriter

      public Writer openWriter() throws IOException
      このファイル・オブジェクトのライターを返します。
      定義:
      openWriter、インタフェースFileObject
      実装要件:
      この実装では、openOutputStream()の結果がWriterにラップされます。
      戻り値:
      openOutputStreamの結果をラップするWriter
      例外:
      IllegalStateException - このファイル・オブジェクトが、読取り可能かつ書込み不可である場合
      UnsupportedOperationException - この種類のファイル・オブジェクトが文字アクセスをサポートしない場合
      IOException - 入出力エラーが発生した場合
    • getLastModified

      public long getLastModified()
      このファイル・オブジェクトが最後に変更された時間を返します。 この時間は、元期(1970年1月1日0時0分0秒GMT)からミリ秒単位で測定されます。
      定義:
      getLastModified、インタフェースFileObject
      実装要件:
      この実装では0Lが返されます。
      戻り値:
      0L
    • delete

      public boolean delete()
      このファイル・オブジェクトを削除します。 エラーの場合はfalseを返します。
      定義:
      delete、インタフェースFileObject
      実装要件:
      この実装は処理を行いません。
      戻り値:
      false
    • getKind

      public JavaFileObject.Kind getKind()
      インタフェースからコピーされた説明: JavaFileObject
      このファイル・オブジェクトの種類を返します。
      定義:
      getKind、インタフェースJavaFileObject
      戻り値:
      this.kind
    • isNameCompatible

      public boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind)
      このファイル・オブジェクトに、指定された単純名および種類との互換性があるかどうかを調べます。 単純名は、「Java言語仕様」6.2の項で定義されている単一の識別子(不適格)です。
      定義:
      isNameCompatible、インタフェースJavaFileObject
      実装要件:
      この実装は、URIのパスと指定された単純名を比較します。 このメソッドは、指定された種類がこのオブジェクトの種類と等しい場合、およびパスがsimpleName + kind.extensionと等しい場合、またはパスが "/" + simpleName + kind.extensionで終わる場合にtrueを返します。

      このメソッドは、uriフィールドとkindフィールドに直接アクセスする代わりに、getKind()toUri()を呼び出します。

      パラメータ:
      simpleName - クラスの単純名
      kind - 種類
      戻り値:
      このファイル・オブジェクトに互換性がある場合はtrue、そうでない場合はfalse
    • getNestingKind

      public NestingKind getNestingKind()
      このファイル・オブジェクトで表されるクラスの入れ子のレベルに関するヒントを提供します。 このメソッドは、NestingKind.LOCALまたはNestingKind.ANONYMOUSの意味でNestingKind.MEMBERを返すことがあります。 入れ子のレベルが未知である場合や、このファイル・オブジェクトがクラス・ファイルを表さない場合、このメソッドはnullを返します。
      定義:
      getNestingKind、インタフェースJavaFileObject
      実装要件:
      この実装ではnullが返されます。
      戻り値:
      入れ子の種類。入れ子の種類が未知である場合はnull
    • getAccessLevel

      public Modifier getAccessLevel()
      このファイル・オブジェクトで表されるクラスのアクセス・レベルに関するヒントを提供します。 アクセス・レベルが不明な場合、またはこのファイル・オブジェクトがクラス・ファイルを表していない場合、このメソッドはnullを返します。
      定義:
      getAccessLevel、インタフェースJavaFileObject
      実装要件:
      この実装ではnullが返されます。
      戻り値:
      アクセス・レベル
    • forSource

      public static JavaFileObject forSource(URI uri, String content)
      指定されたソース・コンテンツを表すJavaFileObjectを作成します。

      指定されたuriは、toUri()から返されます。 指定されたcontentは、getCharContent(boolean)から返されます。 getKind()メソッドは、JavaFileObject.Kind.SOURCEを返します。

      他のすべてのメソッドは、uriおよびKind.SOURCEを使用してコンストラクタがコールされる場合と同様に、このクラスのドキュメントで説明されているように動作します。

      たとえば、このメソッドは、インメモリー文字列をターゲット・ディレクトリ内のクラス・ファイルのセットにコンパイルするために使用できます:

           var code = """
                      public class CompiledCode {}
                      """;
           var compiler = ToolProvider.getSystemJavaCompiler();
           var targetDirectory = "...";
           var task = compiler.getTask(null,
                                       null,
                                       null,
                                       List.of("-d", targetDirectory),
                                       null,
                                       List.of(SimpleJavaFileObject.forSource(URI.create("CompiledCode.java"), code)));
           if (!task.call()) {
               throw new IllegalStateException("Compilation failed!");
           }
      

      パラメータ:
      uri - 結果のJavaFileObjectに使用する必要があります
      content - JavaFileObjectの内容
      戻り値:
      指定されたソース・コンテンツを表すJavaFileObject
      導入されたバージョン:
      23