モジュール java.base
パッケージ java.lang.module

クラスModuleDescriptor.Builder

  • 含まれているクラス:
    ModuleDescriptor


    public static final class ModuleDescriptor.Builder
    extends Object
    ModuleDescriptorオブジェクトを構築するためのビルダー。

    ModuleDescriptornewModulenewOpenModule、およびnewAutomaticModuleメソッドを定義して、normal、オープンおよび自動モジュールをビルドするためのビルダーを作成します。

    モジュール内のパッケージのセットは、 Builderによって蓄積され、exportsopenspackagesprovides、およびmainClassメソッドが呼び出されます。

    ビルダー・メソッドに指定されたパラメータであるモジュール名、パッケージ名、およびクラス名は、「Java™言語仕様」で定義されているクラス(名前付きパッケージで)のモジュール名、パッケージ名、および修飾名です。

    使用例:

       ModuleDescriptor descriptor = ModuleDescriptor.newModule("stats.core")
             .requires("java.base")
             .exports("org.acme.stats.core.clustering")
             .exports("org.acme.stats.core.regression")
             .packages(Set.of("org.acme.stats.core.internal"))
             .build();
     
    APIの注:
    Builderは、コンポーネントがビルダーに追加されるときにコンポーネントとイン・バリアントをチェックします。 これの根拠は、できるだけ早期にエラーを検出し、すべての検証をbuildメソッドに延期しないことです。
    導入されたバージョン:
    9
    • メソッドの詳細

      • requires

        public ModuleDescriptor.Builder requires​(ModuleDescriptor.Requires req)
        モジュールに依存関係を追加します。
        パラメータ:
        req - 依存
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - ビルダーがビルドのために初期化されたモジュールに依存している場合
        IllegalStateException - モジュールへの依存が既に宣言されている場合、またはこのビルダーが自動モジュールの場合
      • requires

        public ModuleDescriptor.Builder requires​(Set<ModuleDescriptor.Requires.Modifier> ms,
                                                 String mn,
                                                 ModuleDescriptor.Version compiledVersion)
        特定の(おそらく空の)修飾子セットを使用して、モジュールに依存関係を追加します。 依存関係には、コンパイル時に記録されたモジュールのバージョンが含まれます。
        パラメータ:
        ms - 修飾子のセット
        mn - モジュール名
        compiledVersion - コンパイル時に記録されたモジュールのバージョン
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - モジュール名がnull、合法的なモジュール名でないか、このビルダーがビルドのために初期化されたモジュール名と等しい場合
        IllegalStateException - モジュールへの依存が既に宣言されている場合、またはこのビルダーが自動モジュールの場合
      • requires

        public ModuleDescriptor.Builder requires​(Set<ModuleDescriptor.Requires.Modifier> ms,
                                                 String mn)
        特定の(おそらく空の)修飾子セットを使用して、モジュールに依存関係を追加します。
        パラメータ:
        ms - 修飾子のセット
        mn - モジュール名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - モジュール名がnull、合法的なモジュール名でないか、このビルダーがビルドのために初期化されたモジュール名と等しい場合
        IllegalStateException - モジュールへの依存が既に宣言されている場合、またはこのビルダーが自動モジュールの場合
      • requires

        public ModuleDescriptor.Builder requires​(String mn)
        修飾子のセットが空のモジュールに依存関係を追加します。
        パラメータ:
        mn - モジュール名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - モジュール名がnull、合法的なモジュール名でないか、このビルダーがビルドのために初期化されたモジュール名と等しい場合
        IllegalStateException - モジュールへの依存が既に宣言されている場合、またはこのビルダーが自動モジュールの場合
      • exports

        public ModuleDescriptor.Builder exports​(ModuleDescriptor.Exports e)
        エクスポートされたパッケージを追加します。
        パラメータ:
        e - エクスポート
        戻り値:
        このビルダー
        例外:
        IllegalStateException - packageがすでにエクスポートされていると宣言されている場合、またはこのビルダーが自動モジュールの場合
      • exports

        public ModuleDescriptor.Builder exports​(Set<ModuleDescriptor.Exports.Modifier> ms,
                                                String pn,
                                                Set<String> targets)
        (おそらく空の)修飾子のセットを指定して、エクスポートされたパッケージを追加します。 パッケージは、一連のターゲット・モジュールにエクスポートされます。
        パラメータ:
        ms - 修飾子のセット
        pn - パッケージ名
        targets - ターゲット・モジュール名のセット
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullであるか、合法的なパッケージ名でない場合、ターゲット・モジュールのセットは空であるか、ターゲット・モジュールのセットに正式なモジュール名ではない名前が含まれています
        IllegalStateException - パッケージがすでにエクスポート済みとして宣言されている場合、またはこのビルダーが自動モジュール用である場合
      • exports

        public ModuleDescriptor.Builder exports​(Set<ModuleDescriptor.Exports.Modifier> ms,
                                                String pn)
        (おそらく空の)修飾子のセットを指定して、エクスポートされたパッケージを追加します。 パッケージはすべてのモジュールにエクスポートされます。
        パラメータ:
        ms - 修飾子のセット
        pn - パッケージ名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullの場合、または合法的なパッケージ名でない場合
        IllegalStateException - パッケージがすでにエクスポート済みとして宣言されている場合、またはこのビルダーが自動モジュール用である場合
      • exports

        public ModuleDescriptor.Builder exports​(String pn,
                                                Set<String> targets)
        エクスポートされたパッケージを追加します。 パッケージは、一連のターゲット・モジュールにエクスポートされます。
        パラメータ:
        pn - パッケージ名
        targets - ターゲット・モジュール名のセット
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullであるか、合法的なパッケージ名でない場合、ターゲット・モジュールのセットは空であるか、ターゲット・モジュールのセットに正式なモジュール名ではない名前が含まれています
        IllegalStateException - パッケージがすでにエクスポート済みとして宣言されている場合、またはこのビルダーが自動モジュール用である場合
      • exports

        public ModuleDescriptor.Builder exports​(String pn)
        エクスポートされたパッケージを追加します。 パッケージはすべてのモジュールにエクスポートされます。
        パラメータ:
        pn - パッケージ名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullの場合、または合法的なパッケージ名でない場合
        IllegalStateException - パッケージがすでにエクスポート済みとして宣言されている場合、またはこのビルダーが自動モジュール用である場合
      • opens

        public ModuleDescriptor.Builder opens​(ModuleDescriptor.Opens obj)
        開いているパッケージを追加します。
        パラメータ:
        obj - Opensオブジェクト
        戻り値:
        このビルダー
        例外:
        IllegalStateException - パッケージがすでにopenとして宣言されている場合、またはこれが開いているモジュールまたは自動モジュールのビルダーである場合
      • opens

        public ModuleDescriptor.Builder opens​(Set<ModuleDescriptor.Opens.Modifier> ms,
                                              String pn,
                                              Set<String> targets)
        与えられた(おそらく空の)修飾子のセットを含む公開パッケージを追加します。 パッケージにはターゲット・モジュールのセットがあります。
        パラメータ:
        ms - 修飾子のセット
        pn - パッケージ名
        targets - ターゲット・モジュール名のセット
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullであるか、合法的なパッケージ名でない場合、ターゲット・モジュールのセットは空であるか、ターゲット・モジュールのセットに正式なモジュール名ではない名前が含まれています
        IllegalStateException - パッケージがすでにopenとして宣言されている場合、またはこれが開いているモジュールまたは自動モジュールのビルダーである場合
      • opens

        public ModuleDescriptor.Builder opens​(Set<ModuleDescriptor.Opens.Modifier> ms,
                                              String pn)
        与えられた(おそらく空の)修飾子のセットを含む公開パッケージを追加します。 パッケージはすべてのモジュールに対して開いています。
        パラメータ:
        ms - 修飾子のセット
        pn - パッケージ名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullの場合、または合法的なパッケージ名でない場合
        IllegalStateException - パッケージがすでにopenとして宣言されている場合、またはこれが開いているモジュールまたは自動モジュールのビルダーである場合
      • opens

        public ModuleDescriptor.Builder opens​(String pn,
                                              Set<String> targets)
        開いているパッケージを追加します。 パッケージにはターゲット・モジュールのセットがあります。
        パラメータ:
        pn - パッケージ名
        targets - ターゲット・モジュール名のセット
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullであるか、合法的なパッケージ名でない場合、ターゲット・モジュールのセットは空であるか、ターゲット・モジュールのセットに正式なモジュール名ではない名前が含まれています
        IllegalStateException - パッケージがすでにopenとして宣言されている場合、またはこれが開いているモジュールまたは自動モジュールのビルダーである場合
      • opens

        public ModuleDescriptor.Builder opens​(String pn)
        開いているパッケージを追加します。 パッケージはすべてのモジュールに対して開いています。
        パラメータ:
        pn - パッケージ名
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名がnullの場合、または合法的なパッケージ名でない場合
        IllegalStateException - パッケージがすでにopenとして宣言されている場合、またはこれが開いているモジュールまたは自動モジュールのビルダーである場合
      • uses

        public ModuleDescriptor.Builder uses​(String service)
        サービスの依存関係を追加します。
        パラメータ:
        service - サービス型
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - サービス型がnullであるか、名前付きパッケージ内のクラスの修飾名ではない
        IllegalStateException - サービス型への依存がすでに宣言されている場合、またはこれが自動モジュールのビルダーである場合
      • provides

        public ModuleDescriptor.Builder provides​(ModuleDescriptor.Provides p)
        1つ以上の実装を持つサービスを提供します。 provider (またはプロバイダのファクトリ)のパッケージは、まだ追加されていない場合はモジュールに追加されます。
        パラメータ:
        p - 提供
        戻り値:
        このビルダー
        例外:
        IllegalStateException - サービス型のプロバイダが既に宣言されている場合
      • provides

        public ModuleDescriptor.Builder provides​(String service,
                                                 List<String> providers)
        サービスの実装を提供します。 各プロバイダのパッケージ(またはプロバイダのファクトリ)がまだ追加されていない場合、モジュールに追加されます。
        パラメータ:
        service - サービス型
        providers - プロバイダまたはプロバイダのファクトリ・クラス名のリスト
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - サービス型またはプロバイダ・クラス名のいずれかがnullであるか、名前付きパッケージのクラスの修飾名でない場合、またはプロバイダ・クラス名のリストが空の場合
        IllegalStateException - サービス型のプロバイダが既に宣言されている場合
      • packages

        public ModuleDescriptor.Builder packages​(Set<String> pns)
        パッケージをモジュールに追加します。 モジュールに含まれていないパッケージ名のセット内のすべてのパッケージがモジュールに追加されます。
        パラメータ:
        pns - パッケージ名の(おそらく空の)セット
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - パッケージ名のいずれかがnullであるか、合法的なパッケージ名ではない
      • mainClass

        public ModuleDescriptor.Builder mainClass​(String mc)
        モジュール・メイン・クラスを設定します。 まだ追加されていない場合は、メイン・クラスのパッケージがモジュールに追加されます。 つまり、このメソッドは、このBuilderのpackagesメソッドを最初に呼び出して、メイン・クラスのパッケージ名を追加するのと同じです。
        パラメータ:
        mc - モジュール・メイン・クラス
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - mainClassnullであるか、名前付きパッケージ内のクラスの修飾名でない場合
      • build

        public ModuleDescriptor build​()
        コンポーネントからModuleDescriptorを構築して返します。

        依存関係が(ただし、"java.base"という名前のモジュールを構築する必要はありません)と宣言されていなくても、モジュールは"java.base"を必要とします。 依存関係が宣言されていない場合、"java.base"への依存はMANDATED修飾子を持ちます。

        戻り値:
        モジュール記述子