Interface ModuleExportInfo


public sealed interface ModuleExportInfo
Models a single "exports" declaration in the ModuleAttribute.
Since:
24
See Also:
  • Method Details

    • exportedPackage

      PackageEntry exportedPackage()
      Returns the exported package.
      Returns:
      the exported package
      See Also:
    • exportsFlagsMask

      int exportsFlagsMask()
      Returns the flags associated with this export declaration, as a bit mask. It is a u2 value.
      Returns:
      the flags associated with this export declaration, as a bit mask
      See Also:
    • exportsFlags

      default Set<AccessFlag> exportsFlags()
      Returns the flags associated with this export declaration, as a set of flag enums.
      Returns:
      the flags associated with this export 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 export declaration has the specified access flag set.
      Parameters:
      flag - the access flag
      Returns:
      whether the export declaration has the specified access flag set
      See Also:
    • exportsTo

      List<ModuleEntry> exportsTo()
      Returns the list of modules to which this package is exported, or empty if this is an unqualified export.
      Returns:
      the list of modules to which this package is exported, or empty if this is an unqualified export
      See Also:
    • of

      static ModuleExportInfo of(PackageEntry exports, int exportFlags, List<ModuleEntry> exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags, as a bitmask
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if exportFlags is not u2 or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageEntry exports, Collection<AccessFlag> exportFlags, List<ModuleEntry> exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if any flag cannot be applied to the AccessFlag.Location.MODULE_EXPORTS location, or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageEntry exports, int exportFlags, ModuleEntry... exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags, as a bitmask
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if exportFlags is not u2 or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageEntry exports, Collection<AccessFlag> exportFlags, ModuleEntry... exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if any flag cannot be applied to the AccessFlag.Location.MODULE_EXPORTS location, or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageDesc exports, int exportFlags, List<ModuleDesc> exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags, as a bitmask
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if exportFlags is not u2 or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageDesc exports, Collection<AccessFlag> exportFlags, List<ModuleDesc> exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if any flag cannot be applied to the AccessFlag.Location.MODULE_EXPORTS location, or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageDesc exports, int exportFlags, ModuleDesc... exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags, as a bitmask
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if exportFlags is not u2 or if the number of modules exceeds the limit of u2
    • of

      static ModuleExportInfo of(PackageDesc exports, Collection<AccessFlag> exportFlags, ModuleDesc... exportsTo)
      Returns a module export description.
      Parameters:
      exports - the exported package
      exportFlags - the export flags
      exportsTo - the modules to which this package is exported, or empty if this is an unqualified export
      Returns:
      a module export description
      Throws:
      IllegalArgumentException - if any flag cannot be applied to the AccessFlag.Location.MODULE_EXPORTS location, or if the number of modules exceeds the limit of u2