29 import java.lang.module.Configuration;
30 import java.lang.module.ModuleDescriptor;
31 import java.lang.module.ModuleDescriptor.Exports;
32 import java.lang.module.ModuleDescriptor.Opens;
33 import java.lang.module.ModuleDescriptor.Requires;
34 import java.lang.module.ModuleDescriptor.Provides;
35 import java.lang.module.ModuleDescriptor.Version;
36 import java.lang.module.ModuleFinder;
37 import java.lang.module.ModuleReader;
38 import java.lang.module.ModuleReference;
39 import java.net.URI;
40 import java.nio.file.Path;
41 import java.util.Map;
42 import java.util.Collection;
43 import java.util.List;
44 import java.util.Optional;
45 import java.util.Set;
46 import java.util.function.Supplier;
47
48 import jdk.internal.module.ModuleHashes;
49
50 /**
51 * Provides access to non-public methods in java.lang.module.
52 */
53
54 public interface JavaLangModuleAccess {
55
56 /**
57 * Creates a builder for building a module with the given module name.
58 *
59 * @param strict
60 * Indicates whether module names are checked or not
61 */
62 ModuleDescriptor.Builder newModuleBuilder(String mn, boolean strict);
63
64 /**
65 * Creates a builder for building an open module with the given module name.
66 *
67 * @param strict
68 * Indicates whether module names are checked or not
120
121 /**
122 * Returns a new {@code ModuleDescriptor} instance.
123 */
124 ModuleDescriptor newModuleDescriptor(String name,
125 boolean open,
126 boolean automatic,
127 boolean synthetic,
128 Set<Requires> requires,
129 Set<Exports> exports,
130 Set<Opens> opens,
131 Set<String> uses,
132 Set<Provides> provides,
133 Version version,
134 String mainClass,
135 String osName,
136 String osArch,
137 String osVersion,
138 Set<String> packages,
139 ModuleHashes hashes,
140 int hashCode);
141
142 /**
143 * Returns the object with the hashes of other modules
144 */
145 Optional<ModuleHashes> hashes(ModuleDescriptor descriptor);
146
147 /**
148 * Resolves a collection of root modules, with service binding
149 * and the empty configuration as the parent. The post resolution
150 * checks are optionally run.
151 */
152 Configuration resolveRequiresAndUses(ModuleFinder finder,
153 Collection<String> roots,
154 boolean check,
155 PrintStream traceOutput);
156
157 /**
158 * Creates a ModuleReference to a "patched" module.
159 */
160 ModuleReference newPatchedModule(ModuleDescriptor descriptor,
161 URI location,
162 Supplier<ModuleReader> readerSupplier);
163
164 /**
165 * Creates a ModuleFinder for a module path.
|
29 import java.lang.module.Configuration;
30 import java.lang.module.ModuleDescriptor;
31 import java.lang.module.ModuleDescriptor.Exports;
32 import java.lang.module.ModuleDescriptor.Opens;
33 import java.lang.module.ModuleDescriptor.Requires;
34 import java.lang.module.ModuleDescriptor.Provides;
35 import java.lang.module.ModuleDescriptor.Version;
36 import java.lang.module.ModuleFinder;
37 import java.lang.module.ModuleReader;
38 import java.lang.module.ModuleReference;
39 import java.net.URI;
40 import java.nio.file.Path;
41 import java.util.Map;
42 import java.util.Collection;
43 import java.util.List;
44 import java.util.Optional;
45 import java.util.Set;
46 import java.util.function.Supplier;
47
48 import jdk.internal.module.ModuleHashes;
49 import jdk.internal.module.WarnIfResolvedReason;
50
51 /**
52 * Provides access to non-public methods in java.lang.module.
53 */
54
55 public interface JavaLangModuleAccess {
56
57 /**
58 * Creates a builder for building a module with the given module name.
59 *
60 * @param strict
61 * Indicates whether module names are checked or not
62 */
63 ModuleDescriptor.Builder newModuleBuilder(String mn, boolean strict);
64
65 /**
66 * Creates a builder for building an open module with the given module name.
67 *
68 * @param strict
69 * Indicates whether module names are checked or not
121
122 /**
123 * Returns a new {@code ModuleDescriptor} instance.
124 */
125 ModuleDescriptor newModuleDescriptor(String name,
126 boolean open,
127 boolean automatic,
128 boolean synthetic,
129 Set<Requires> requires,
130 Set<Exports> exports,
131 Set<Opens> opens,
132 Set<String> uses,
133 Set<Provides> provides,
134 Version version,
135 String mainClass,
136 String osName,
137 String osArch,
138 String osVersion,
139 Set<String> packages,
140 ModuleHashes hashes,
141 int hashCode,
142 boolean doNotResolveByDefault,
143 WarnIfResolvedReason reason);
144
145 /**
146 * Returns the object with the hashes of other modules
147 */
148 Optional<ModuleHashes> hashes(ModuleDescriptor descriptor);
149
150 /**
151 * Returns the value of the DO_NOT_RESOLVE_BY_DEFAULT bit.
152 */
153 boolean doNotResolveByDefault(ModuleDescriptor descriptor);
154
155 /**
156 * Returns the warn if resolved reason, if any.
157 */
158 WarnIfResolvedReason warnIfResolvedReason(ModuleDescriptor descriptor);
159
160
161 /**
162 * Resolves a collection of root modules, with service binding
163 * and the empty configuration as the parent. The post resolution
164 * checks are optionally run.
165 */
166 Configuration resolveRequiresAndUses(ModuleFinder finder,
167 Collection<String> roots,
168 boolean check,
169 PrintStream traceOutput);
170
171 /**
172 * Creates a ModuleReference to a "patched" module.
173 */
174 ModuleReference newPatchedModule(ModuleDescriptor descriptor,
175 URI location,
176 Supplier<ModuleReader> readerSupplier);
177
178 /**
179 * Creates a ModuleFinder for a module path.
|