Interface ModuleAttribute.ModuleAttributeBuilder
- Enclosing interface:
ModuleAttribute
public static sealed interface ModuleAttribute.ModuleAttributeBuilder
A builder for
Module attributes.- See Java Virtual Machine Specification:
- 4.7.25 The
ModuleAttribute
- Since:
- 24
- See Also:
Method Summary
Method Details
moduleName
ModuleAttribute.ModuleAttributeBuilder moduleName(ModuleDesc moduleName)
Sets the module name.
- Parameters:
-
moduleName- the module name - Returns:
- this builder
moduleFlags
ModuleAttribute.ModuleAttributeBuilder moduleFlags(int flagsMask)
Sets the module flags.
- Parameters:
-
flagsMask- the module flags - Returns:
- this builder
moduleFlags
default ModuleAttribute.ModuleAttributeBuilder moduleFlags(AccessFlag... moduleFlags)
Sets the module flags.
- Parameters:
-
moduleFlags- the module flags - Returns:
- this builder
- Throws:
-
IllegalArgumentException- if any flag cannot be applied to theAccessFlag.Location.MODULElocation
moduleVersion
ModuleAttribute.ModuleAttributeBuilder moduleVersion(String version)
Sets the module version, which may be
null.- Parameters:
-
version- the module version, may benull - Returns:
- this builder
requires
ModuleAttribute.ModuleAttributeBuilder requires(ModuleDesc module, int requiresFlagsMask, String version)
Adds a module requirement.
- Parameters:
-
module- the required module -
requiresFlagsMask- the requires flags -
version- the required module version, may benull - Returns:
- this builder
requires
default ModuleAttribute.ModuleAttributeBuilder requires(ModuleDesc module, Collection<AccessFlag> requiresFlags, String version)
Adds a module requirement.
- Parameters:
-
module- the required module -
requiresFlags- the requires flags -
version- the required module version, may benull - Returns:
- this builder
- Throws:
-
IllegalArgumentException- if any flag cannot be applied to theAccessFlag.Location.MODULE_REQUIRESlocation
requires
ModuleAttribute.ModuleAttributeBuilder requires(ModuleRequireInfo requires)
Adds module requirement.
- Parameters:
-
requires- the module require info - Returns:
- this builder
exports
ModuleAttribute.ModuleAttributeBuilder exports(PackageDesc pkge, int exportsFlagsMask, ModuleDesc... exportsToModules)
Adds an exported package.
- Parameters:
-
pkge- the exported package -
exportsFlagsMask- the export flags -
exportsToModules- the modules to export to, or empty for an unqualified export - Returns:
- this builder
exports
default ModuleAttribute.ModuleAttributeBuilder exports(PackageDesc pkge, Collection<AccessFlag> exportsFlags, ModuleDesc... exportsToModules)
Adds an exported package.
- Parameters:
-
pkge- the exported package -
exportsFlags- the export flags -
exportsToModules- the modules to export to, or empty for an unqualified export - Returns:
- this builder
- Throws:
-
IllegalArgumentException- if any flag cannot be applied to theAccessFlag.Location.MODULE_EXPORTSlocation
exports
ModuleAttribute.ModuleAttributeBuilder exports(ModuleExportInfo exports)
Adds an exported package.
- Parameters:
-
exports- the module export info - Returns:
- this builder
opens
ModuleAttribute.ModuleAttributeBuilder opens(PackageDesc pkge, int opensFlagsMask, ModuleDesc... opensToModules)
Opens a package.
- API Note:
- Opening a package to another module allows that other module to gain the same full privilege access as members in this module. See
MethodHandles.privateLookupIn(Class, MethodHandles.Lookup)for more details. - Parameters:
-
pkge- the opened package -
opensFlagsMask- the open package flags -
opensToModules- the modules to open to, or empty for an unqualified open - Returns:
- this builder
opens
default ModuleAttribute.ModuleAttributeBuilder opens(PackageDesc pkge, Collection<AccessFlag> opensFlags, ModuleDesc... opensToModules)
Opens a package.
- API Note:
- Opening a package to another module allows that other module to gain the same full privilege access as members in this module. See
MethodHandles.privateLookupIn(Class, MethodHandles.Lookup)for more details. - Parameters:
-
pkge- the opened package -
opensFlags- the open package flags -
opensToModules- the modules to open to, or empty for an unqualified open - Returns:
- this builder
- Throws:
-
IllegalArgumentException- if any flag cannot be applied to theAccessFlag.Location.MODULE_OPENSlocation
opens
ModuleAttribute.ModuleAttributeBuilder opens(ModuleOpenInfo opens)
Opens a package.
- API Note:
- Opening a package to another module allows that other module to gain the same full privilege access as members in this module. See
MethodHandles.privateLookupIn(Class, MethodHandles.Lookup)for more details. - Parameters:
-
opens- the module open info - Returns:
- this builder
uses
ModuleAttribute.ModuleAttributeBuilder uses(ClassDesc service)
Declares use of a service.
- Parameters:
-
service- the service class used - Returns:
- this builder
- Throws:
-
IllegalArgumentException- ifservicerepresents a primitive type
uses
ModuleAttribute.ModuleAttributeBuilder uses(ClassEntry uses)
Declares use of a service.
- Parameters:
-
uses- the service class used - Returns:
- this builder
provides
ModuleAttribute.ModuleAttributeBuilder provides(ClassDesc service, ClassDesc... implClasses)
Declares provision of a service.
- Parameters:
-
service- the service class provided -
implClasses- the implementation classes - Returns:
- this builder
- Throws:
-
IllegalArgumentException- ifserviceor any of theimplClassesrepresents a primitive type
provides
ModuleAttribute.ModuleAttributeBuilder provides(ModuleProvideInfo provides)
Declares provision of a service.
- Parameters:
-
provides- the module provides info - Returns:
- this builder
© 1993, 2025, 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/25/docs/api/java.base/java/lang/classfile/attribute/ModuleAttribute.ModuleAttributeBuilder.html