- java.lang.Object
-
- java.lang.module.ModuleDescriptor
-
- すべての実装されたインタフェース:
Comparable<ModuleDescriptor>
public class ModuleDescriptor extends Object implements Comparable<ModuleDescriptor>
モジュール記述子。モジュール記述子は、名前付きモジュールを記述し、各コンポーネントを取得するメソッドを定義します。 Java仮想マシン内の名前付きモジュールのモジュール記述子は、
ModuleのgetDescriptorメソッドを呼び出すことによって取得されます。 モジュール記述子は、ModuleDescriptor.Builderクラスを使用して作成することも、ここで定義したreadメソッドを使用してモジュール宣言のバイナリ形式(module-info.class)を読み取ることもできます。モジュール記述子は、標準モジュール、オープン・モジュールまたは自動モジュールを記述します。 標準モジュールおよびオープン・モジュールは、それらの
dependences、exported-packages、それらがuseまたはprovideとするサービス、およびその他のコンポーネントを記述します。 通常のモジュールは、特定のパッケージをopenできます。 オープン・モジュールのモジュール記述子は、オープン・パッケージを宣言しません(opensメソッドは空のセットを返します)。ただし、Java仮想マシンでインスタンス化されると、すべてのパッケージがオープンしているかのように処理されます。 自動モジュールのモジュール記述子は、依存性を宣言しません(java.baseに対する必須の依存性を除く)。また、エクスポートされたパッケージまたはオープンされたパッケージは宣言しません。 自動モジュールは、構成内の他のすべてのモジュールを読み取るように、解像度中に特別な処理を受けます。 Java仮想マシンで自動モジュールがインスタンス化されると、名前のないすべてのモジュールが読み取られ、すべてのパッケージがエクスポートされてオープンしているかのように扱われます。ModuleDescriptorオブジェクトは不変で、複数の同時スレッドで使用しても安全です。- 導入されたバージョン:
- 9
- 関連項目:
Module
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static classModuleDescriptor.BuilderModuleDescriptorオブジェクトをビルドするためのビルダー。static classModuleDescriptor.Exportsモジュールによってエクスポートされたパッケージは、修飾されたり、修飾されていない場合があります。static classModuleDescriptor.Modifierモジュール上の修飾子。static classModuleDescriptor.Opensモジュールによって開かれたパッケージは、修飾されたり、修飾されていない場合があります。static classModuleDescriptor.Providesモジュールが1つ以上の実装を提供するサービス。static classModuleDescriptor.Requiresモジュールへの依存static classModuleDescriptor.Versionモジュールのバージョン文字列。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 intcompareTo(ModuleDescriptor that)このモジュール記述子を別のモジュール記述子と比較します。booleanequals(Object ob)指定されたオブジェクトと等しいかどうか、このモジュール記述子をテストします。Set<ModuleDescriptor.Exports>exports()エクスポートされたパッケージを表すExportsオブジェクトのセットを返します。inthashCode()このモジュール記述子のハッシュ・コードを計算します。booleanisAutomatic()これが自動モジュールの場合、trueを返します。booleanisOpen()これがオープン・モジュールの場合、trueを返します。Optional<String>mainClass()モジュールのmainクラスを返します。Set<ModuleDescriptor.Modifier>modifiers()モジュール修飾子のセットを返します。Stringname()モジュール名を返します。static ModuleDescriptor.BuildernewAutomaticModule(String name)ビルダーをインスタンス化して、自動モジュールのモジュール記述子を構築します。static ModuleDescriptor.BuildernewModule(String name)ビルダーをインスタンス化して、normalモジュールのモジュール記述子を構築します。static ModuleDescriptor.BuildernewModule(String name, Set<ModuleDescriptor.Modifier> ms)ビルダーをインスタンス化して、モジュール記述子を作成します。static ModuleDescriptor.BuildernewOpenModule(String name)ビルダーをインスタンス化して、オープン・モジュールのモジュール記述子を構築します。Set<ModuleDescriptor.Opens>opens()オープン・パッケージを表すOpensオブジェクトのセットを返します。Set<String>packages()モジュール内のパッケージのセットを返します。Set<ModuleDescriptor.Provides>provides()モジュールが提供するサービスを表すProvidesオブジェクトのセットを返します。Optional<String>rawVersion()解析不可能なバージョンのモジュールを含む文字列を返しますstatic ModuleDescriptorread(InputStream in)モジュール宣言のバイナリ形式をモジュール記述子として入力ストリームから読み取ります。static ModuleDescriptorread(InputStream in, Supplier<Set<String>> packageFinder)モジュール宣言のバイナリ形式をモジュール記述子として入力ストリームから読み取ります。static ModuleDescriptorread(ByteBuffer bb)モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。static ModuleDescriptorread(ByteBuffer bb, Supplier<Set<String>> packageFinder)モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。Set<ModuleDescriptor.Requires>requires()モジュール依存性を表すRequiresオブジェクトのセットを返します。StringtoNameAndVersion()モジュール名とそのバージョン(存在する場合)を含む文字列を返します。StringtoString()モジュールを説明する文字列を返します。Set<String>uses()一連のサービス依存を返します。Optional<ModuleDescriptor.Version>version()モジュールのバージョンを返します。
-
-
-
メソッドの詳細
-
name
public String name()
モジュール名を返します。
- 戻り値:
- モジュール名
-
modifiers
public Set<ModuleDescriptor.Modifier> modifiers()
モジュール修飾子のセットを返します。
- 戻り値:
- 変更不可の可能性がある修飾子のセット
-
isOpen
public boolean isOpen()
- 戻り値:
- これがオープン・モジュールの場合は
true
-
isAutomatic
public boolean isAutomatic()
- 戻り値:
- これが自動モジュールの場合は
true
-
requires
public Set<ModuleDescriptor.Requires> requires()
モジュール依存性を表す
Requiresオブジェクトのセットを返します。このモジュールの名前が「
java.base」でない場合、このセットには「java.base」への依存関係が含まれています。 このモジュールが自動モジュールの場合、java.base以外のモジュールに依存しません。- 戻り値:
- 空で変更できない可能性のある
ModuleDescriptor.Requiresオブジェクトのセット
-
exports
public Set<ModuleDescriptor.Exports> exports()
エクスポートされたパッケージを表す
Exportsオブジェクトのセットを返します。このモジュールが自動モジュールの場合、エクスポート・セットは空です。
- 戻り値:
- 変更できない可能性があるエクスポート済パッケージのセット
-
opens
public Set<ModuleDescriptor.Opens> opens()
オープン・パッケージを表す
Opensオブジェクトのセットを返します。このモジュールがオープン・モジュールまたは自動モジュールの場合、オープン・パッケージのセットは空です。
- 戻り値:
- 変更不可の可能性があるオープン・パッケージのセット
-
uses
public Set<String> uses()
一連のサービス依存を返します。
このモジュールが自動モジュールの場合、一連のサービス依存性は空です。
- 戻り値:
- 使用されるサービス・タイプの完全修飾クラス名の、変更できない可能性がある空のセット
-
provides
public Set<ModuleDescriptor.Provides> provides()
モジュールが提供するサービスを表す
Providesオブジェクトのセットを返します。- 戻り値:
- このモジュールが提供する、変更できない可能性のあるサービスのセット
-
version
public Optional<ModuleDescriptor.Version> version()
モジュールのバージョンを返します。
- 戻り値:
- このモジュールのバージョン、またはモジュールにバージョンがない場合、またはバージョンが解析不可能の場合は空の
Optional
-
rawVersion
public Optional<String> rawVersion()
解析不可能なバージョンのモジュールを含む文字列を返します
- 戻り値:
- モジュールのバージョンを含む文字列、またはモジュールにバージョンがない場合は空の
Optional - 関連項目:
version()
-
toNameAndVersion
public String toNameAndVersion()
モジュール名とそのバージョン(存在する場合)を含む文字列を返します。
- 戻り値:
- モジュール名とそのバージョン(存在する場合)を含む文字列
-
packages
public Set<String> packages()
モジュール内のパッケージのセットを返します。パッケージ・セットには、エクスポートされたパッケージとオープン・パッケージ、すべてのサービス・プロバイダのパッケージ、およびメイン・クラスのパッケージが含まれます。
- 戻り値:
- モジュール内の変更不可の可能性があるパッケージのセット
-
compareTo
public int compareTo(ModuleDescriptor that)
このモジュール記述子を別のモジュール記述子と比較します。2つの
ModuleDescriptorオブジェクトは、そのモジュール名を辞書順に比較することによって比較されます。 モジュール名が等しい場合は、モジュールのバージョンが比較されます。 モジュール・バージョンを比較する場合、バージョンを持つモジュール記述子は、バージョンを持たないモジュール記述子の後継とみなされます。 両方のバージョンが解析不可能の場合、rawバージョン文字列は辞書順で比較されます。 モジュール名が等しく、バージョンが等しい(または両方に存在しない)場合、修飾子のセットが比較されます。 モディファイアのセットは、各セットについて計算されたバイナリ値を比較することによって比較されます。 修飾子がセットに存在する場合、その序数の位置にあるビットは、バイナリ値では1、それ以外の場合は0です。 2つの修飾子セットも等しい場合、モジュール記述子の他のコンポーネントは、equalsと一貫性のある方法で比較されます。- 定義:
- インタフェース
Comparable<ModuleDescriptor>のcompareTo - パラメータ:
that- 比較するモジュール記述子- 戻り値:
- このモジュール記述子が指定されたモジュール記述子より小さい、等しい、または大きい場合は、負の整数、ゼロ、または正の整数
-
equals
public boolean equals(Object ob)
指定されたオブジェクトと等しいかどうか、このモジュール記述子をテストします。指定されたオブジェクトが
ModuleDescriptorでない場合、このメソッドはfalseを返します。 2つのモジュール記述子は、対応する各コンポーネントが等しい場合に等しくなります。このメソッドは
Object.equalsメソッドの汎用規約を満たします。- オーバーライド:
equals、クラスObject- パラメータ:
ob- このオブジェクトと比較するオブジェクト- 戻り値:
- 指定されたオブジェクトがこのモジュール記述子と等しいモジュール記述子である場合にかぎり、
true - 関連項目:
Object.hashCode()、HashMap
-
hashCode
public int hashCode()
このモジュール記述子のハッシュ・コードを計算します。ハッシュ・コードは、モジュール記述子のコンポーネントに基づいており、
Object.hashCodeメソッドの一般的な規約を満たします。- オーバーライド:
hashCode、クラスObject- 戻り値:
- このモジュール記述子のハッシュ・コード値
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
toString
public String toString()
モジュールを説明する文字列を返します。
-
newModule
public static ModuleDescriptor.Builder newModule(String name, Set<ModuleDescriptor.Modifier> ms)
ビルダーをインスタンス化して、モジュール記述子を作成します。- パラメータ:
name- モジュール名ms- モジュール修飾子のセット- 戻り値:
- 新しいビルダー
- 例外:
IllegalArgumentException- モジュール名がnullであるか、有効なモジュール名ではない場合、または修飾子のセットに他の修飾子を含むAUTOMATICが含まれている場合
-
newModule
public static ModuleDescriptor.Builder newModule(String name)
- パラメータ:
name- モジュール名- 戻り値:
- 新しいビルダー
- 例外:
IllegalArgumentException- モジュール名がnullであるか、有効なモジュール名ではない場合
-
newOpenModule
public static ModuleDescriptor.Builder newOpenModule(String name)
ビルダーをインスタンス化して、オープン・モジュールのモジュール記述子を構築します。 このメソッドは、OPEN修飾子を使用してnewModuleを起動することと同等です。オープン・モジュールのビルダーは、オープン・パッケージの宣言に使用できません。
- パラメータ:
name- モジュール名- 戻り値:
- オープン・モジュールを構築する新しいビルダー
- 例外:
IllegalArgumentException- モジュール名がnullであるか、有効なモジュール名ではない場合
-
newAutomaticModule
public static ModuleDescriptor.Builder newAutomaticModule(String name)
ビルダーをインスタンス化して、自動モジュールのモジュール記述子を構築します。 このメソッドは、AUTOMATIC修飾子を使用してnewModuleを起動することと同等です。自動モジュールのビルダーは、モジュールまたはサービスの依存性を宣言するために使用できません。 また、エクスポートされたパッケージや開いているパッケージの宣言にも使用できません。
- パラメータ:
name- モジュール名- 戻り値:
- 自動モジュールを構築する新しいビルダー
- 例外:
IllegalArgumentException- モジュール名がnullであるか、有効なモジュール名ではない場合- 関連項目:
ModuleFinder.of(Path[])
-
read
public static ModuleDescriptor read(InputStream in, Supplier<Set<String>> packageFinder) throws IOException
モジュール宣言のバイナリ形式をモジュール記述子として入力ストリームから読み取ります。入力ストリームでエンコードされた記述子がモジュール内のパッケージのセットを示していない場合は、
packageFinderが呼び出されます。packageFinderが返すパッケージのセットには、モジュールがエクスポート、開くすべてのパッケージ、モジュールが提供するサービス実装のパッケージ、およびメイン・クラスのパッケージ(モジュールにメイン・クラスがある場合)が含まれている必要があります。packageFinderがUncheckedIOExceptionをスローすると、IOExceptionの原因が再スローされます。モジュール記述子の後ろにバイトがある場合、これらのバイトが
InvalidModuleDescriptorExceptionとして読み取られたか、無視されたか、またはレポートされたかについて、実装に固有です。 このメソッドがInvalidModuleDescriptorExceptionまたはIOExceptionで失敗した場合は、入力ストリームから一部(すべてではない)のバイトが読み取られた後に失敗する可能性があります。 例外が発生した場合は、ストリームを迅速に閉じ、破棄することを強くお薦めします。- APIのノート:
packageFinderパラメータは、ディスクリプタ自体にパッケージのセットを記録しないレガシー・モジュール・アーティファクト・フォーマットからモジュール・ディスクリプタを読み取る場合に使用します。- パラメータ:
in- 入力ストリームpackageFinder- パッケージのセットを生成できるサプライヤ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException- 無効なモジュール記述子が検出された場合、またはpackageFinderによって返されたパッケージのセットに、モジュール記述子から取得されたすべてのパッケージが含まれていない場合IOException- 入力ストリームからの読取り中にI/Oエラーが発生した場合、またはパッケージ・ファインダによってUncheckedIOExceptionがスローされた場合
-
read
public static ModuleDescriptor read(InputStream in) throws IOException
モジュール宣言のバイナリ形式をモジュール記述子として入力ストリームから読み取ります。 このメソッドは、ストリームから読み取られたモジュール記述子がパッケージのセットを示さない場合、パッケージャ・ファインダは追加パッケージの検索に使用されないことを除き、2引数のreadメソッドで指定されているとおりに機能します。- パラメータ:
in- 入力ストリーム- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException- 無効なモジュール記述子が検出された場合IOException- 入力ストリームからの読取り中にI/Oエラーが発生した場合
-
read
public static ModuleDescriptor read(ByteBuffer bb, Supplier<Set<String>> packageFinder)
モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。バイト・バッファにエンコードされた記述子がモジュール内のパッケージのセットを示していない場合は、
packageFinderが呼び出されます。packageFinderが返すパッケージのセットには、モジュールがエクスポート、開くすべてのパッケージ、モジュールが提供するサービス実装のパッケージ、およびメイン・クラスのパッケージ(モジュールにメイン・クラスがある場合)が含まれている必要があります。packageFinderがUncheckedIOExceptionをスローすると、IOExceptionの原因が再スローされます。モジュール記述子は、索引
pからバッファから読み取られます。このメソッドが呼び出されると、pはバッファpositionになります。 戻ると、バッファの位置はp + nと等しくなります。nは、バッファから読み取られたバイト数です。モジュール記述子の後ろにバイトがある場合、これらのバイトが
InvalidModuleDescriptorExceptionとして読み取られたか、無視されたか、またはレポートされたかについて、実装に固有です。 このメソッドがInvalidModuleDescriptorExceptionで失敗した場合は、一部(すべてではない)のバイトが読み取られた後に失敗する可能性があります。- APIのノート:
packageFinderパラメータは、ディスクリプタ自体にパッケージのセットを記録しないレガシー・モジュール・アーティファクト・フォーマットからモジュール・ディスクリプタを読み取る場合に使用します。- パラメータ:
bb- バイト・バッファpackageFinder- パッケージのセットを生成できるサプライヤ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException- 無効なモジュール記述子が検出された場合、またはpackageFinderによって返されたパッケージのセットに、モジュール記述子から取得されたすべてのパッケージが含まれていない場合
-
read
public static ModuleDescriptor read(ByteBuffer bb)
モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。 このメソッドは、2引数のreadメソッドで指定されているとおりに機能します。ただし、バッファにエンコードされたモジュール記述子がパッケージのセットを示さない場合、パッケージャ・ファインダは追加パッケージの検索に使用されません。- パラメータ:
bb- バイト・バッファ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException- 無効なモジュール記述子が検出された場合
-
-