# Interface ModuleOpenInfo

public sealed interface ModuleOpenInfo
Models a single "opens" declaration in the `ModuleAttribute`.

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(java.lang.Class<?>, java.lang.invoke.MethodHandles.Lookup)` for more details.
See Java Virtual Machine Specification:
  4.7.25 The `Module` Attribute
Since:
  24
See Also:
  - `ModuleAttribute.exports()`
  - `ModuleDescriptor.Opens`

## Method Summary

Modifier and Type
Method
Description
`default boolean`
`has(AccessFlag flag)`
Returns whether the open declaration has the specified access flag set.
`static ModuleOpenInfo`
`of(PackageEntry opens, int opensFlags, ModuleEntry... opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageEntry opens, int opensFlags, List<ModuleEntry> opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageEntry opens, Collection<AccessFlag> opensFlags, ModuleEntry... opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageEntry opens, Collection<AccessFlag> opensFlags, List<ModuleEntry> opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageDesc opens, int opensFlags, ModuleDesc... opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageDesc opens, int opensFlags, List<ModuleDesc> opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageDesc opens, Collection<AccessFlag> opensFlags, ModuleDesc... opensTo)`
Returns a module open description.
`static ModuleOpenInfo`
`of(PackageDesc opens, Collection<AccessFlag> opensFlags, List<ModuleDesc> opensTo)`
Returns a module open description.
`PackageEntry`
`openedPackage()`
Returns the package being opened.
`default Set<AccessFlag>`
`opensFlags()`
Returns the flags associated with this open declaration, as a set of flag enums.
`int`
`opensFlagsMask()`
Returns the flags associated with this open declaration, as a bit mask.
`List<ModuleEntry>`
`opensTo()`
Returns the modules to which this package is opened, or empty if this is an unqualified open.

## Method Details

### openedPackage

PackageEntry openedPackage()
Returns the package being opened.

Returns:
  the package being opened
See Also:
  - `ModuleDescriptor.Opens.source()`

### opensFlagsMask

int opensFlagsMask()
Returns the flags associated with this open declaration, as a bit mask. It is in the range of unsigned short, `[0, 0xFFFF]`.

Returns:
  the flags associated with this open declaration, as a bit mask
See Also:
  - `ModuleDescriptor.Opens.modifiers()`
  - `AccessFlag.Location.MODULE_OPENS`

### opensFlags

default Set<AccessFlag> opensFlags()
Returns the flags associated with this open declaration, as a set of flag enums.

Returns:
  the flags associated with this open declaration, as a set of flag enums
Throws:
  `IllegalArgumentException` - if the flags mask has any undefined bit set
See Also:
  - `ModuleDescriptor.Opens.accessFlags()`
  - `AccessFlag.Location.MODULE_OPENS`

### has

default boolean has(AccessFlag flag)
Returns whether the open declaration has the specified access flag set.

Parameters:
  `flag` - the access flag
Returns:
  whether the open declaration has the specified access flag set
See Also:
  - `AccessFlag.Location.MODULE_OPENS`

### opensTo

List<ModuleEntry> opensTo()
Returns the modules to which this package is opened, or empty if this is an unqualified open.

Returns:
  the modules to which this package is opened, or empty if this is an unqualified open
See Also:
  - `ModuleDescriptor.Opens.isQualified()`
  - `ModuleDescriptor.Opens.targets()`

### of

static ModuleOpenInfo of(PackageEntry opens, int opensFlags, List<ModuleEntry> opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description

### of

static ModuleOpenInfo of(PackageEntry opens, Collection<AccessFlag> opensFlags, List<ModuleEntry> opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description
Throws:
  `IllegalArgumentException` - if any flag cannot be applied to the `AccessFlag.Location.MODULE_OPENS` location

### of

static ModuleOpenInfo of(PackageEntry opens, int opensFlags, ModuleEntry... opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description

### of

static ModuleOpenInfo of(PackageEntry opens, Collection<AccessFlag> opensFlags, ModuleEntry... opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description
Throws:
  `IllegalArgumentException` - if any flag cannot be applied to the `AccessFlag.Location.MODULE_OPENS` location

### of

static ModuleOpenInfo of(PackageDesc opens, int opensFlags, List<ModuleDesc> opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, if it is a qualified open, or empty
Returns:
  a module open description

### of

static ModuleOpenInfo of(PackageDesc opens, Collection<AccessFlag> opensFlags, List<ModuleDesc> opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the modules to which this package is opened, if it is a qualified open, or empty
Returns:
  a module open description
Throws:
  `IllegalArgumentException` - if any flag cannot be applied to the `AccessFlag.Location.MODULE_OPENS` location

### of

static ModuleOpenInfo of(PackageDesc opens, int opensFlags, ModuleDesc... opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the packages to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description

### of

static ModuleOpenInfo of(PackageDesc opens, Collection<AccessFlag> opensFlags, ModuleDesc... opensTo)
Returns a module open description.

Parameters:
  `opens` - the package to open
  `opensFlags` - the open flags
  `opensTo` - the packages to which this package is opened, or empty if this is an unqualified open
Returns:
  a module open description
Throws:
  `IllegalArgumentException` - if any flag cannot be applied to the `AccessFlag.Location.MODULE_OPENS` location