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.
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 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 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 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 any flag cannot be applied to the AccessFlag.Location.MODULE_OPENS location, or the number of modules exceeds the limit of u2