Класс ModuleDescriptor.Builder
- Вложенный класс:
ModuleDescriptor
public static final class ModuleDescriptor.Builder extends Object
ModuleDescriptor. ModuleDescriptor определяет методы newModule, newOpenModule и newAutomaticModule для создания билдеров для построения обычных, открытых и автоматических модулей.
Множество пакетов в модуле накапливается методом
Builder по мере вызова методов exports, opens, packages, provides и 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
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ModuleDescriptor |
build() |
Строит и возвращает ModuleDescriptor из его компонентов. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
exports |
Добавляет экспортированный пакет с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
mainClass |
Устанавливает главный класс модуля. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
opens |
Добавляет открытый пакет с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
packages |
Добавляет пакеты в модуль. |
ModuleDescriptor.Builder |
provides |
Предоставляет сервис с одной или несколькими реализациями. |
ModuleDescriptor.Builder |
provides |
Предоставляет реализации сервиса. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с пустым набором модификаторов. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
requires |
Добавляет зависимость от модуля с заданным (и возможно пустым) набором модификаторов. |
ModuleDescriptor.Builder |
uses |
Добавляет зависимость от сервиса. |
ModuleDescriptor.Builder |
version |
Устанавливает версию модуля. |
ModuleDescriptor.Builder |
version |
Устанавливает версию модуля. |
Подробное описание методов
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- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn, Set<String> targets)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если имя пакетаnullили оно не является допустимым именем пакета, набор целевых модулей пустой или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(Set<ModuleDescriptor.Opens.Modifier> ms, String pn)
- Параметры:
-
ms- Набор модификаторов -
pn- Имя пакета - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если имя пакетаnullили оно не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(String pn, Set<String> targets)
- Параметры:
-
pn- Имя пакета -
targets- Набор имён целевых модулей - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если имя пакетаnullили оно не является допустимым именем пакета, набор целевых модулей пустой или набор целевых модулей содержит имя, которое не является допустимым именем модуля -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
opens
public ModuleDescriptor.Builder opens(String pn)
- Параметры:
-
pn- Имя пакета - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если имя пакетаnullили оно не является допустимым именем пакета -
IllegalStateException- Если пакет уже объявлен как открытый, или это билдер для открытого модуля или автоматического модуля
uses
public ModuleDescriptor.Builder uses(String service)
- Параметры:
-
service- Тип службы - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если тип службыnullили не является квалифицированным именем класса в именованном пакете -
IllegalStateException- Если зависимость от типа службы уже объявлена или это билдер для автоматического модуля
provides
public ModuleDescriptor.Builder provides(ModuleDescriptor.Provides p)
provider (или фабрики поставщика) добавляется в модуль, если он ещё не добавлен.- Параметры:
-
p- Предоставляет - Возвращает:
- Этот билдер
- Исключения:
-
IllegalStateException- Если поставщики для типа службы уже были объявлены
Указывает
public ModuleDescriptor.Builder provides(String service, List<String> providers)
- Параметры:
-
service- Тип сервиса -
providers- Список имён классов поставщиков или фабрик поставщиков - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если тип сервиса или любое из имён классов поставщиковnullили не является квалифицированным именем класса в именованном пакете, или список имён классов поставщиков пуст -
IllegalStateException- Если поставщики для типа сервиса уже объявлены
Добавляет пакеты
public ModuleDescriptor.Builder packages(Set<String> pns)
- Параметры:
-
pns- (Возможный пустой) набор имён пакетов - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Если любое из имён пакетовnullили не является допустимым именем пакета
версия
public ModuleDescriptor.Builder version(ModuleDescriptor.Version v)
- Параметры:
-
v- Версия - Возвращает:
- Этот билдер
версия
public ModuleDescriptor.Builder version(String vs)
- Параметры:
-
vs- Строка версии для парсинга - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- Еслиvsnullили не может быть обработана как строка версии - См. также:
главныйКласс
public ModuleDescriptor.Builder mainClass(String mc)
packages для добавления имени пакета главного класса.- Параметры:
-
mc- Главный класс модуля - Возвращает:
- Этот билдер
- Исключения:
-
IllegalArgumentException- ЕслиmainClassnullили не является квалифицированным именем класса в именованном пакете
создать
public ModuleDescriptor build()
ModuleDescriptor из его компонентов. Модуль будет требовать "java.base", даже если зависимость не объявлена (исключение — при создании модуля с именем "java.base", так как он не может требовать себя). Зависимость от "java.base" будет иметь модификатор MANDATED, если зависимость не была объявлена.
- Возвращает:
- Описание модуля
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/module/ModuleDescriptor.Builder.html