java.lang.Object
java.lang.ModuleLayer.Controller
- Enclosing class:
- ModuleLayer
Controls a module layer. The static methods defined by
ModuleLayer
to create module layers return a Controller
that can be used to
control modules in the layer.
Unless otherwise specified, passing a null
argument to a
method in this class causes a NullPointerException
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 TypeMethodDescriptionaddExports(Module source, String pn, Module target)
Updates modulesource
in the layer to export a package to moduletarget
.Updates modulesource
in the layer to open a package to moduletarget
.Updates modulesource
in the layer to read moduletarget
.layer()
Returns the layer that this object controls.
-
Method Details
-
layer
Returns the layer that this object controls.- Returns:
- the module layer
-
addReads
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
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
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)
-