Class ModuleLayer.Controller
- 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 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 Type | Method | Description |
---|---|---|
ModuleLayer.Controller | addExports(Module source,
String pn,
Module target) | Updates module |
ModuleLayer.Controller | addOpens(Module source,
String pn,
Module target) | Updates module |
ModuleLayer.Controller | addReads(Module source,
Module target) | Updates module |
ModuleLayer | layer() | Returns the layer that this object controls. |
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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 module source
in the layer to read module target
. This method is a no-op if source
already reads target
.
- 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 module -
target
- 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 module source
in the layer to export a package to module target
. This method is a no-op if source
already exports the package to at least target
.
- Parameters:
-
source
- The source module -
pn
- The package name -
target
- 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 module source
in the layer to open a package to module target
. This method is a no-op if source
already opens the package to at least target
.
- Parameters:
-
source
- The source module -
pn
- The package name -
target
- 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)