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

クラスModuleDescriptor.Builder

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

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

    ModuleDescriptorは、標準、オープンおよび自動モジュールを構築するためのビルダーを作成するためのnewModulenewOpenModuleおよびnewAutomaticModuleメソッドを定義します。

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

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

    使用例:

       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)
        モジュールのメイン・クラスを設定します。 mainクラスのパッケージがまだ追加されていない場合は、モジュールに追加されます。 つまり、このメソッドは、このビルダーのpackagesメソッドを最初に起動してメイン・クラスのパッケージ名を追加することと同等です。
        パラメータ:
        mc - モジュールのメイン・クラス
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - mainClassnullであるか、名前付きパッケージ内のクラスの修飾名ではない場合
      • build

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

        依存性が宣言されていない場合でも、モジュールには"java.base"が必要です(例外は、それ自体を必要としないため、"java.base"という名前のモジュールを構築する場合です)。 依存性が宣言されていなければ、「java.base」への依存には MANDATED修飾子が含まれます。

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