クラス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
SimpleJavaFileObject
(URI uri, JavaFileObject.Kind kind) 指定されたURIを使って、指定された種類のSimpleJavaFileObjectを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
delete()
このファイル・オブジェクトを削除します。static JavaFileObject
指定されたソース・コンテンツを表すJavaFileObject
を作成します。このファイル・オブジェクトで表されるクラスのアクセス・レベルに関するヒントを提供します。getCharContent
(boolean ignoreEncodingErrors) このファイル・オブジェクトの文字コンテンツ(使用可能な場合)を返します。getKind()
このファイル・オブジェクトの種類を返します。long
このファイル・オブジェクトが最後に変更された時間を返します。getName()
このファイル・オブジェクトのわかりやすい名前を返します。このファイル・オブジェクトで表されるクラスの入れ子のレベルに関するヒントを提供します。boolean
isNameCompatible
(String simpleName, JavaFileObject.Kind kind) このファイル・オブジェクトに、指定された単純名および種類との互換性があるかどうかを調べます。このファイル・オブジェクトのInputStreamを返します。このファイル・オブジェクトのOutputStreamを返します。openReader
(boolean ignoreEncodingErrors) このオブジェクトのリーダーを返します。このファイル・オブジェクトのライターを返します。toUri()
このファイル・オブジェクトを識別するURIを返します。
-
フィールド詳細
-
uri
protected final URI uriこのファイル・オブジェクトのURIです。 -
kind
protected final JavaFileObject.Kind kindこのファイル・オブジェクトの種類です。
-
-
コンストラクタの詳細
-
SimpleJavaFileObject
protected SimpleJavaFileObject(URI uri, JavaFileObject.Kind kind) 指定されたURIを使って、指定された種類のSimpleJavaFileObjectを構築します。- パラメータ:
uri
- このファイル・オブジェクトのURIkind
- このファイル・オブジェクトの種類
-
-
メソッドの詳細
-
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
-