- java.lang.Object
-
- java.lang.ModuleLayer.Controller
-
- Enclosing class:
- ModuleLayer
public static final class ModuleLayer.Controller extends Object
Controls a module layer. The static methods defined byModuleLayer
to create module layers return aController
that can be used to control modules in the layer.Unless otherwise specified, passing a
null
argument to a method in this class causes aNullPointerException
to be thrown.- API Note:
- Care should be taken with
Controller
objects, they should never be shared with untrusted code. - Since:
- 9
-
-
Method Summary
Modifier and Type Method Description ModuleLayer.Controller
addExports(Module source, String pn, Module target)
Updates modulesource
in the layer to export a package to moduletarget
.ModuleLayer.Controller
addOpens(Module source, String pn, Module target)
Updates modulesource
in the layer to open a package to moduletarget
.ModuleLayer.Controller
addReads(Module source, Module target)
Updates modulesource
in the layer to read moduletarget
.ModuleLayer
layer()
Returns the layer that this object controls.
-
-
-
Method Detail
-
layer
public ModuleLayer layer()
Returns the layer that this object controls.- Returns:
- the module layer
-
addReads
public ModuleLayer.Controller addReads(Module source, Module target)
Updates modulesource
in the layer to read moduletarget
. This method is a no-op ifsource
already readstarget
.- Implementation Note:
- Read edges added by this method are weak
and do not prevent
target
from being GC'ed whensource
is strongly reachable. - Parameters:
source
- The source moduletarget
- The target module to read- Returns:
- This controller
- Throws:
IllegalArgumentException
- Ifsource
is not in the module layer- See Also:
Module.addReads(java.lang.Module)
-
addExports
public ModuleLayer.Controller addExports(Module source, String pn, Module target)
Updates modulesource
in the layer to export a package to moduletarget
. This method is a no-op ifsource
already exports the package to at leasttarget
.- Parameters:
source
- The source modulepn
- The package nametarget
- The target module- Returns:
- This controller
- Throws:
IllegalArgumentException
- Ifsource
is not in the module layer or the package is not in the source module- See Also:
Module.addExports(java.lang.String, java.lang.Module)
-
addOpens
public ModuleLayer.Controller addOpens(Module source, String pn, Module target)
Updates modulesource
in the layer to open a package to moduletarget
. This method is a no-op ifsource
already opens the package to at leasttarget
.- Parameters:
source
- The source modulepn
- The package nametarget
- The target module- Returns:
- This controller
- Throws:
IllegalArgumentException
- Ifsource
is not in the module layer or the package is not in the source module- See Also:
Module.addOpens(java.lang.String, java.lang.Module)
-
-