クラス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