Interface ModuleAttribute
- All Superinterfaces:
Attribute<ModuleAttribute>, ClassElement, ClassFileElement
public sealed interface ModuleAttribute extends Attribute<ModuleAttribute>, ClassElement
Models the
Module attribute (JVMS 4.7.25), which always appears on classes that represent module descriptors. This attribute only appears on classes, and does not permit multiple instances in a class. It has a data dependency on the constant pool.
The attribute was introduced in the Java SE Platform version 9, major version 53.
- See Java Virtual Machine Specification:
- 4.7.25 The
ModuleAttribute
- Since:
- 24
- See Also:
Nested Class Summary
| Modifier and Type | Interface | Description |
|---|---|---|
static interface |
ModuleAttribute.ModuleAttributeBuilder |
A builder for Module attributes. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
List |
exports() |
Returns the packages exported by this module. |
default boolean |
has |
Tests presence of module flag. |
default Set |
moduleFlags() |
Returns the module flags of the module, as a set of enum constants. |
int |
moduleFlagsMask() |
Returns the module flags of the module, as a bit mask. |
ModuleEntry |
moduleName() |
Returns the name of the module. |
Optional |
moduleVersion() |
Returns the version of the module, if present. |
static ModuleAttribute |
of |
Returns a Module attribute. |
static ModuleAttribute |
of |
Returns a Module attribute. |
static ModuleAttribute |
of |
Returns a Module attribute. |
List |
opens() |
Returns the packages opened by this module. |
List |
provides() |
Returns the service implementations provided by this module. |
List |
requires() |
Returns the modules required by this module. |
List |
uses() |
Returns the services used by this module. |
Methods declared in interface Attribute
attributeMapper, attributeName
Method Details
moduleName
ModuleEntry moduleName()
Returns the name of the module.
- Returns:
- the name of the module
- See Also:
moduleFlagsMask
int moduleFlagsMask()
Returns the module flags of the module, as a bit mask. It is in the range of unsigned short,
[0, 0xFFFF].- Returns:
- the module flags of the module, as a bit mask
- See Also:
moduleFlags
default Set<AccessFlag> moduleFlags()
Returns the module flags of the module, as a set of enum constants.
- Returns:
- the module flags of the module, as a set of enum constants
- Throws:
-
IllegalArgumentException- if the flags mask has any undefined bit set - See Also:
has
default boolean has(AccessFlag flag)
Tests presence of module flag.
- Parameters:
-
flag- the module flag - Returns:
- true if the flag is set
- See Also:
moduleVersion
Optional<Utf8Entry> moduleVersion()
Returns the version of the module, if present.
- Returns:
- the version of the module, if present
- See Also:
requires
List<ModuleRequireInfo> requires()
Returns the modules required by this module.
- Returns:
- the modules required by this module
- See Also:
exports
List<ModuleExportInfo> exports()
Returns the packages exported by this module.
- Returns:
- the packages exported by this module
- See Also:
opens
List<ModuleOpenInfo> opens()
Returns the packages opened by this module.
- 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. - Returns:
- the packages opened by this module
- See Also:
uses
List<ClassEntry> uses()
Returns the services used by this module. Services may be discovered via
ServiceLoader.- Returns:
- the services used by this module
- See Also:
provides
List<ModuleProvideInfo> provides()
Returns the service implementations provided by this module.
- Returns:
- the service implementations provided by this module
- See Also:
of
static ModuleAttribute of(ModuleEntry moduleName, int moduleFlags, Utf8Entry moduleVersion, Collection<ModuleRequireInfo> requires, Collection<ModuleExportInfo> exports, Collection<ModuleOpenInfo> opens, Collection<ClassEntry> uses, Collection<ModuleProvideInfo> provides)
Returns a
Module attribute.- Parameters:
-
moduleName- the module name -
moduleFlags- the module flags -
moduleVersion- the module version, may benull -
requires- the required packages -
exports- the exported packages -
opens- the opened packages -
uses- the consumed services -
provides- the provided services - Returns:
- a
Moduleattribute
of
static ModuleAttribute of(ModuleDesc moduleName, Consumer<ModuleAttribute.ModuleAttributeBuilder> attrHandler)
Returns a
Module attribute.- Parameters:
-
moduleName- the module name -
attrHandler- a handler that receives aModuleAttribute.ModuleAttributeBuilder - Returns:
- a
Moduleattribute
of
static ModuleAttribute of(ModuleEntry moduleName, Consumer<ModuleAttribute.ModuleAttributeBuilder> attrHandler)
Returns a
Module attribute.- Parameters:
-
moduleName- the module name -
attrHandler- a handler that receives aModuleAttribute.ModuleAttributeBuilder - Returns:
- a
Moduleattribute
© 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.html