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(Class, MethodHandles.Lookup) for more details.
See Java Virtual Machine Specification:
4.7.25 The Module Attribute
Since:
24
See Also:
  • Method Details

    • openedPackage

      PackageEntry openedPackage()
      Returns the package being opened.
      Returns:
      the package being opened
      See Also:
    • opensFlagsMask

      int opensFlagsMask()
      Returns the flags associated with this open declaration, as a bit mask. It is a u2 value.
      Returns:
      the flags associated with this open declaration, as a bit mask
      See Also:
    • 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:
    • 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:
    • 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:
    • 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
      Throws:
      IllegalArgumentException - if opensFlags is not u2 or if the number of modules exceeds the limit of u2
    • 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, or the number of modules exceeds the limit of u2
    • 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
      Throws:
      IllegalArgumentException - if opensFlags is not u2 or if the number of modules exceeds the limit of u2
    • 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, or the number of modules exceeds the limit of u2
    • 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
      Throws:
      IllegalArgumentException - if opens represents an unnamed package; if any of opensTo represents an unnamed module; if opensFlags is not u2; or if the number of modules exceeds the limit of u2
    • 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 opens represents an unnamed package; if any of opensTo represents an unnamed module; if any flag cannot be applied to the AccessFlag.Location.MODULE_OPENS location; or the number of modules exceeds the limit of u2
    • 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
      Throws:
      IllegalArgumentException - if opens represents an unnamed package; if any of opensTo represents an unnamed module; if opensFlags is not u2; or if the number of modules exceeds the limit of u2
    • 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 opens represents an unnamed package; if any of opensTo represents an unnamed module; if any flag cannot be applied to the AccessFlag.Location.MODULE_OPENS location; or the number of modules exceeds the limit of u2