Package Summary Overview Summary

### class:ModuleLayer.Controller [NONE]
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:layer() [NONE]
### layer public ModuleLayer layer() Returns the layer that this object controls. Returns: the module layer

### method:addReads(java.lang.Module,java.lang.Module) [NONE]
### 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 when `source` is strongly reachable. Parameters: `source` - The source module `target` - The target module to read Returns: This controller Throws: `IllegalArgumentException` - If `source` is not in the module layer See Also: `Module.addReads(java.lang.Module)`

### method:addExports(java.lang.Module,java.lang.String,java.lang.Module) [NONE]
### 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` - If `source` 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)`

### method:addOpens(java.lang.Module,java.lang.String,java.lang.Module) [NONE]
### 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` - If `source` 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)`