- 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
)モジュール宣言のバイナリ形式を読み込むことによっても作成できます。モジュール記述子は、normal、open、またはautomaticモジュールを記述します。 「ノーマル」モジュールとオープン・モジュールは、
dependences
、exported-packages
、use
またはprovide
などのサービスを記述します。 「ノーマル」モジュールは、特定のパッケージをopen
することがあります。 開いているモジュールのモジュール記述子は開いているパッケージ(そのopens
メソッドは空のセットを返します)を宣言しませんが、Java仮想マシンでインスタンス化すると、すべてのパッケージが開いているかのように扱われます。 自動モジュールのモジュール記述子は依存関係(java.base
の必須の依存関係を除いて)を宣言しておらず、エクスポート・パッケージまたはオープン・パッケージも宣言しません。 自動モジュールは、構成中の他のすべてのモジュールを読み取るように、解像度中に特別な処理を受け取ります。 自動モジュールがJava仮想マシンでインスタンス化されると、名前のないモジュールがすべて読み込まれ、すべてのパッケージがエクスポートされ、開いているかのように扱われます。ModuleDescriptor
オブジェクトは、複数の同時スレッドで使用するために不変で安全です。- 導入されたバージョン:
- 9
- 関連項目:
モジュール
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
ModuleDescriptor.Builder
ModuleDescriptor
オブジェクトを構築するためのビルダー。static class
ModuleDescriptor.Exports
モジュールによってエクスポートされたパッケージは、修飾されているか、または修飾されていない可能性があります。static class
ModuleDescriptor.Modifier
モジュール上の修飾子。static class
ModuleDescriptor.Opens
モジュールによってオープンされたパッケージは、修飾されているか、または修飾されていない可能性があります。static class
ModuleDescriptor.Provides
モジュールが1つ以上の実装を提供するサービス。static class
ModuleDescriptor.Requires
モジュールへの依存static class
ModuleDescriptor.Version
モジュールのバージョン文字列。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 int
compareTo(ModuleDescriptor that)
このモジュール記述子を別のモジュール記述子と比較します。boolean
equals(Object ob)
このモジュール記述子が指定されたオブジェクトと等しいかどうかをテストします。Set<ModuleDescriptor.Exports>
exports()
エクスポートされたパッケージを表すExports
オブジェクトのセットを返します。int
hashCode()
このモジュール記述子のハッシュ・コードを計算します。boolean
isAutomatic()
自動モジュールの場合はtrue
を返します。boolean
isOpen()
オープン・モジュールの場合はtrue
を返します。Optional<String>
mainClass()
モジュール・メイン・クラスを返します。Set<ModuleDescriptor.Modifier>
modifiers()
モジュール修飾子のセットを返します。String
name()
モジュール名を返します。static ModuleDescriptor.Builder
newAutomaticModule(String name)
ビルダーをインスタンス化して、自動モジュール用のモジュール記述子を作成します。static ModuleDescriptor.Builder
newModule(String name)
ビルダーをインスタンス化して、normalモジュールのモジュール記述子を作成します。static ModuleDescriptor.Builder
newModule(String name, Set<ModuleDescriptor.Modifier> ms)
ビルダーをインスタンス化してモジュール記述子を構築します。static ModuleDescriptor.Builder
newOpenModule(String name)
ビルダーをインスタンス化して、開いているモジュール用のモジュール記述子を作成します。Set<ModuleDescriptor.Opens>
opens()
開いているパッケージを表すOpens
オブジェクトのセットを返します。Set<String>
packages()
モジュール内のパッケージのセットを返します。Set<ModuleDescriptor.Provides>
provides()
モジュールが提供するサービスを表すProvides
オブジェクトのセットを返します。Optional<String>
rawVersion()
モジュールの解析できないバージョンの文字列を返しますstatic ModuleDescriptor
read(InputStream in)
モジュール記述子のバイナリ形式を入力ストリームからモジュール記述子として読み込みます。static ModuleDescriptor
read(InputStream in, Supplier<Set<String>> packageFinder)
モジュール記述子のバイナリ形式を入力ストリームからモジュール記述子として読み込みます。static ModuleDescriptor
read(ByteBuffer bb)
モジュール記述子のバイナリ形式をバイト・バッファからモジュール記述子として読み込みます。static ModuleDescriptor
read(ByteBuffer bb, Supplier<Set<String>> packageFinder)
モジュール記述子のバイナリ形式をバイト・バッファからモジュール記述子として読み込みます。Set<ModuleDescriptor.Requires>
requires()
モジュールの依存関係を表すRequires
オブジェクトのセットを返します。String
toNameAndVersion()
モジュール名と存在する場合はそのバージョンを含む文字列を返します。String
toString()
モジュールを説明する文字列を返します。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()
モジュールのバージョンを返します。
- 戻り値:
- このモジュールのバージョン、またはモジュールにバージョンがないか、バージョンがunparseableの場合は空の
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
オブジェクトは、モジュール名を辞書的に比較することによって比較されます。 モジュール名が等しい場合、モジュールのバージョンが比較されます。 モジュールのバージョンを比較するとき、バージョンを持つモジュール記述子は、バージョンを持たないモジュール記述子を継承すると見なされます。 両方のバージョンがunparseableの場合、「生バージョンの文字列」は辞書順に比較されます。 モジュール名が等しく、バージョンが(または両方に存在しない)と等しい場合、修飾子のセットが比較されます。 修飾子のセットは、各セットについて計算された「バイナリ値」を比較することによって比較されます。 修飾子がセットに存在する場合、その序数の位置にあるビットは、バイナリ値では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-argread
メソッドで指定されているとおりに動作しますが、ストリームから読み込まれたモジュール記述子がパッケージのセットを示していないときに、パッケージ検査ツールを使用して追加パッケージを検出することはありません。- パラメータ:
in
- 入力ストリーム- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合IOException
- 入力ストリームからの読み込みでI/Oエラーが発生した場合
-
read
public static ModuleDescriptor read(ByteBuffer bb, Supplier<Set<String>> packageFinder)
モジュール記述子のバイナリ形式をバイト・バッファからモジュール記述子として読み込みます。バイトバッファでエンコードされた記述子がモジュール内のパッケージのセットを示さない場合は、
packageFinder
が呼び出されます。packageFinder
が返すパッケージのセットには、モジュールがエクスポートして開くすべてのパッケージ、モジュールが提供するサービス実装のパッケージ、およびメイン・クラス(モジュールにメイン・クラスがある場合)のパッケージが含まれている必要があります。packageFinder
がUncheckedIOException
をスローすると、IOException
原因が再スローされます。このメソッドが呼び出されると、
p
がバッファposition
であるインデックスp
にあるバッファからモジュール記述子が読み込まれます。 戻り時に、バッファ位置はp + n
に等しくなります。ここで、n
はバッファから読み取られたバイト数です。モジュール記述子の後にバイトがある場合、これらのバイトが読み込まれたか、無視されたか、または
InvalidModuleDescriptorException
として報告されるかは実装固有です。 このメソッドがInvalidModuleDescriptorException
で失敗した場合、すべてではないバイトの一部が読み込まれた後にこのメソッドが実行される可能性があります。- APIの注:
packageFinder
パラメータは、ディスクリプタ自体にパッケージのセットを記録しないレガシー・モジュール・アーティファクト形式からモジュール・ディスクリプタを読み取るときに使用します。- パラメータ:
bb
- バイト・バッファpackageFinder
- パッケージのセットを作成できるサプライヤ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合、またはpackageFinder
によって返されたパッケージのセットに、モジュール記述子から取得されたすべてのパッケージが含まれていない場合
-
read
public static ModuleDescriptor read(ByteBuffer bb)
モジュール記述子のバイナリ形式をバイト・バッファからモジュール記述子として読み込みます。 このメソッドは、2-argread
メソッドで指定されたとおりに動作しますが、バッファにエンコードされたモジュール記述子がパッケージのセットを示さない場合、パッケージ検査ツールを使用して追加のパッケージを検索することはありません。- パラメータ:
bb
- バイト・バッファ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合
-
-